Openconnect para Cisco VPN não reconhece rotinas de codificação de chave privada - asn1: ASN1_CHECK_TLEN: tag errada

3

Estou tentando usar minha caixa NAS Synology DS212 e também atuo como gateway de VPN para minha VPN de empresas. Infelizmente, eles só usam Cisco ASA e para complicar ainda mais as coisas, precisamos usar certificados pessoais (o que é claro, mais seguro, mas mais complicado para continuar ...).

Então eu compilei o OpenConnect v4.06 do link . Como um teste muito básico, eu tentei construir uma conexão invocando manualmente o openconnect, passando adiante os arquivos chave e cert, assim:

/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

Ele falha: (

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

Quando executo o mesmo comando com os mesmos arquivos de certificados / chaves em uma caixa do Ubuntu 12.04, ele funciona:

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>/
[…]

Bem… O erro no NAS é este:

5919: erro: 0D0680A8: rotinas de codificação asn1: ASN1_CHECK_TLEN: tag errada: tasn_dec.c: 1315:

Alguma idéia, o que está causando isso?

No Syno, eu uso o OpenConnect 4.06. No Ubuntu, eu apenas compilei e instalei para um local personalizado OpenConnect 4.06 também.

Obrigado Alexandre

    
por Alexander Skwar 06.08.2012 / 22:34

2 respostas

1

Eu tive o mesmo problema e consegui resolvê-lo manipulando um pouco o arquivo PEM da chave privada. Continha o padrão habitual de cabeçalhos e rodapés

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

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

Isso era perfeitamente válido para verificação com o openssl; Eu poderia obter uma saída sã do comando openssl.

openssl rsa -in private.key -noout -text

Mas para o openconnect não foi específico o suficiente.

Eu mudei o clichê para

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

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

i.e. Eu adicionei o identificador "RSA". (claro, sem as aspas no arquivo PEM).

    
por 13.10.2016 / 09:44
0

Eu recomendo que você tente se conectar à sua rede Cisco AnyConnect através de uma distribuição Linux normal primeiro, por exemplo, o Ubuntu.

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

É como eu faço o login via openconnect na minha instalação AnyConnect.

Você precisa instalar o openconnect e o vpnc para que isso funcione.

    
por 04.08.2014 / 16:19