Openconnect für Cisco VPN erkennt keine privaten Schlüsseldateien - Verschlüsselungsroutinen für asn1: ASN1_CHECK_TLEN: falscher Tag

11301
Alexander Skwar

Ich versuche, meine Synology DS212 NAS-Box auch als VPN-Gateway für das VPN meiner Firma zu verwenden. Leider verwenden sie nur Cisco ASA. Um das Ganze noch komplizierter zu gestalten, müssen wir persönliche Zertifikate verwenden (was natürlich sicherer ist, aber komplizierter, um loszulegen).

Also habe ich OpenConnect v4.06 von http://www.infradead.org/openconnect/ kompiliert . Als sehr einfachen Test habe ich versucht, eine Verbindung aufzubauen, indem ich openconnect manuell aufrufe und die Schlüssel- und cert-Dateien weitergebe:

/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 

Es schlägt fehl :(

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 

Wenn ich denselben Befehl mit denselben cert / key-Dateien auf einer Ubuntu 12.04-Box ausführen, funktioniert es:

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

Nun ... Der Fehler auf dem NAS lautet:

5919: Fehler: 0D0680A8: ASN1-Codierungsroutinen: ASN1_CHECK_TLEN: Falscher Tag: Tasn_dec.c: 1315:

Irgendwelche Ideen, was verursacht das?

Auf Syno verwende ich OpenConnect 4.06. Unter Ubuntu habe ich gerade OpenConnect 4.06 kompiliert und an einem benutzerdefinierten Ort installiert.

Danke, Alexander

3
Ich habe einige Bearbeitungsfehler gemacht, als ich die Schlüsseldatei manipuliert habe. Mit openssl für das Snipping funktionierte es gut: openssl pkcs12 -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 Alexander Skwar vor 10 Jahren 0

2 Antworten auf die Frage

1
tseeling

Ich hatte das gleiche Problem und konnte es lösen, indem ich die private PEM-Datei ein wenig manipulierte. Es enthielt die übliche Kopf- und Fußkesselplatte

"----- BEGIN PRIVATE TASTE -----"

"----- ENDE PRIVATE KEY -----"

Dies galt vollkommen für die Überprüfung mit openssl; Ich könnte mit dem Befehl openssl eine vernünftige Ausgabe erhalten.

openssl rsa -in private.key -noout -text 

Aber für Openconnect war es nicht spezifisch genug.

Ich habe die Heizplatte in geändert

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

"----- ENDE RSA PRIVATE KEY -----"

dh ich habe den "RSA" Bezeichner hinzugefügt. (natürlich ohne die Anführungszeichen in der PEM-Datei).

0
Johan Dahlin

Ich würde empfehlen, dass Sie zuerst versuchen, eine Verbindung zu Ihrem Cisco AnyConnect-Netzwerk über eine normale Linux-Distribution herzustellen, beispielsweise Ubuntu.

$ sudo openconnect http: // $ gateway / Vollständiger Zugriff --script / etc / vpnc / vpnc-script --user $ USERNAME

So logge ich mich über openconnect bei meiner AnyConnect-Installation ein.

Damit dies funktioniert, müssen Sie sowohl openconnect als auch vpnc installieren.