Openconnect for Cisco VPN 无法识别私钥文件 - asn1 编码例程:ASN1_CHECK_TLEN:错误标签

Openconnect for Cisco VPN 无法识别私钥文件 - asn1 编码例程:ASN1_CHECK_TLEN:错误标签

我正在尝试使用我的Synology DS212NAS 盒还充当我公司 VPN 的 VPN 网关。遗憾的是,它们只使用思科 ASA而更复杂的是,我们必须使用个人证书(这当然更安全,但开始起来更复杂……)。

所以我编译了 OpenConnect v4.06http://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:错误:0D0680A8:asn1 编码例程:ASN1_CHECK_TLEN:错误标签:tasn_dec.c:1315:

有什么想法吗,这是什么原因造成的?

在 Syno 上,我使用 OpenConnect 4.06。在 Ubuntu 上,我也只是编译并安装 OpenConnect 4.06 到自定义位置。

谢谢,亚历山大

答案1

我遇到了同样的问题,我可以通过稍微操作私钥 PEM 文件来解决这个问题。它包含常见的页眉和页脚样板

“-----开始私钥-----”

“-----结束私钥-----”

这对于使用 openssl 进行验证完全有效;我可以从 openssl 命令获得合理的输出。

openssl rsa -in private.key -noout -text

但对于 openconnect 来说,它还不够具体。

我把样板改成了

“-----开始 RSA 私钥-----”

“-----结束RSA私钥-----”

即我添加了“RSA”标识符。(当然,PEM 文件中没有引号)。

答案2

我建议您首先尝试通过普通 Linux 发行版(例如 Ubuntu)连接到您的 Cisco AnyConnect 网络。

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

这是我如何通过 openconnect 登录到我的 AnyConnect 安装。

您需要同时安装 openconnect 和 vpnc 才能使其正常工作。

相关内容