Cisco VPNのOpenconnectが秘密鍵ファイルを認識しない-asn1エンコードルーチン:ASN1_CHECK_TLEN:wrongタグ


3

Synology DS212 NASボックスを会社のVPNへのVPNゲートウェイとしても使用しようとしています。悲しいことに、彼らはCisco ASAのみを使用し、さらに複雑なものにするために、個人証明書を使用する必要があります(もちろん、より安全ですが、さらに複雑になります...)。

そこで、http: //www.infradead.org/openconnect/からOpenConnect v4.06をコンパイルしました。非常に基本的なテストとして、手動でopenconnectを呼び出し、次のようにキーファイルと証明書ファイルを渡して接続を確立しようとしました。

/lib/ld-linux.so.3 --library-path /opt/lib \
 /opt/openconnect/sbin/openconnect \
  --certificate=$VPN_CFG/alexander.crt \
  --sslkey=$VPN_CFG/alexander.key \
  --cafile=$VPN_CFG/Company_VPN_CA.crt \
  --user=alexander --verbose <ip>:443

失敗します:(

Attempting to connect to <ip>:443
Using certificate file $VPN_CFG/alexander.crt
Using client certificate '/CN=alexander@tech.doma.in/OU=Company VPN'
5919:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1315:
Loading private key failed (see above errors)
Loading certificate failed. Aborting.
Failed to open HTTPS connection to <ip>
Failed to obtain WebVPN cookie

Ubuntu 12.04ボックスで同じ証明書/キーファイルを使用して同じコマンドを実行すると、動作します。

openconnect \
 --certificate=$VPN_CFG/alexander.crt \
  --sslkey=$VPN_CFG/alexander.key \
  --cafile=$VPN_CFG/Company_VPN_CA.crt \
  --user=alexander --verbose <ip>:443
Attempting to connect to <ip>:443
Using certificate file $VPN_CFG/alexander.crt
Extra cert from cafile: '/CN=Company AG VPN CA/O=Company AG/L=Zurich/ST=ZH/C=CH'
SSL negotiation with <ip>
Server certificate verify failed: self signed certificate

Certificate from VPN server "<ip>" failed verification.
Reason: self signed certificate
Enter 'yes' to accept, 'no' to abort; anything else to view: yes
Connected to HTTPS on <ip>
GET https://<ip>/
[…]

さて... NASのエラーは次のとおりです。

5919:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1315:

何かアイデア、これは何が原因ですか?

Synoでは、OpenConnect 4.06を使用します。Ubuntuでは、OpenConnect 4.06のカスタムロケーションにもコンパイルしてインストールしました。

ありがとう、アレクサンダー


キーファイルを操作したときに、いくつかの編集エラーが発生したはずです。opensslを使用してスニッピングを行うと、うまくいきました。opensslpkcs12 -in alexander.skwar.p12 -nodes -clcerts -nokeys> ClientCert.pem; openssl pkcs12 -in alexander.skwar.p12 -nodes -cacerts -nokeys -out CaCert.pem; OpenSSLのPKCS12 -in alexander.skwar.p12 -nodes -nocerts -out Key.pem
アレクサンダーSkwar

回答:


1

私も同じ問題を抱えていたので、秘密鍵PEMファイルを少し操作することで解決できました。通常のヘッダーとフッターのボイラープレートが含まれていた

「-----プライベートキーを開始-----」

「----- ENDプライベートキー-----」

これはopensslでの検証に完全に有効でした。opensslコマンドから正常な出力を得ることができました。

openssl rsa -in private.key -noout -text

しかし、openconnectの場合、十分に具体的ではありませんでした。

ボイラープレートを

「----- BEGIN RSA PRIVATE KEY -----」

「----- END RSAプライベートキー-----」

つまり、「RSA」識別子を追加しました。(もちろん、PEMファイルに引用符はありません)。


0

まずUbuntuなどの通常のLinuxディストリビューションを介してCisco AnyConnectネットワークに接続してみることをお勧めします。

$ sudo openconnect http:// $ gateway / Full-Access --script / etc / vpnc / vpnc-script --user $ USERNAME

AnyConnectインストールへのopenconnect経由のログイン方法です。

これを機能させるには、openconnectとvpncの両方をインストールする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.