web-dev-qa-db-ja.com

Openconnect for Cisco VPNは秘密鍵ファイルを認識しません-asn1エンコーディングルーチン:ASN1_CHECK_TLEN:間違ったタグ

Synology DS212NASボックスは会社のVPNへのVPNゲートウェイとしても機能します。残念ながら、彼らはCisco ASAそしてさらに複雑にするために、個人証明書を使用する必要があります(もちろん、より安全ですが、始めるのはより複雑です…)。

そこで、OpenConnect v4.06を http://www.infradead.org/openconnect/ からコンパイルしました。非常に基本的なテストとして、次のように、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 '/[email protected]/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エンコーディングルーチン:ASN1_CHECK_TLEN:間違ったタグ:tasn_dec.c:1315:

何かアイデア、これを引き起こしているのは何ですか?

Synoでは、OpenConnect4.06を使用しています。 Ubuntuでは、OpenConnect4.06もコンパイルしてカスタムの場所にインストールしました。

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

3
Alexander Skwar

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

"----- BEGIN PRIVATE KEY -----"

"-----秘密鍵の終了-----"

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

openssl rsa -in private.key -noout -text

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

ボイラープレートをに変更しました

"----- BEGIN RSA PRIVATE KEY -----"

"----- END RSA PRIVATE KEY -----"

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

1
tseeling

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

$ Sudo openconnect http:// $ Gateway/Full-Access --script/etc/vpnc/vpnc-script --user $ USERNAME

これが、openconnectを介してAnyConnectインストールにログインする方法です。

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

0
Johan Dahlin