2016-12-13 5 views
0

Ich wurde aufgefordert, eine FTPS-Verbindung einzurichten, mit einem Client-Authentifizierungszertifikat. Ich bin der Client und verbinde mich mit dem Server. Ich bin auf einer Windows7-Workstation, hinter einer Firewall. Einige andere Info:Setup FTPS-Verbindung mit Client-Authentifizierung certs

  • TLS 1.2 nur
  • Passiv-Modus nur
  • Meine WAN-IP-Whitelist wird
  • Ich bin auf eine Test-URL verbinden, denn jetzt
  • Es gibt keine Outbound-Firewall (nur eingehende Regeln)
  • Key sollte

ich das Zertifikat gekauft im PEM-Format gesendet werden von Comodo und erzeugte das Zertifikat mit IE10. Ich habe das vollständige Zertifikat vom IE mit dem privaten Schlüssel und den erweiterten Eigenschaften im PFX-Format exportiert.

Ich schrieb eine kleine Batch-Datei, die notwendigen Teile aus dem PFX zu extrahieren, OpenSSL:

::Extract the private key from the PFX 
openssl pkcs12 -in comodo.pfx -nocerts -out encrypted.key 
::Extract unencrypted private key 
openssl rsa -in encrypted.key -out decrypted.key 
::Extract the public cert in Base64 from the PFX 
openssl pkcs12 -in comodo.pfx -clcerts -nokeys | openssl x509 -out comodo.cer 
::Extract the chain bundle from the PFX 
openssl pkcs12 -in comodo.pfx -nodes -nokeys -cacerts | openssl x509 -out comodo.crt 

die extrahierten Schlüsselteile verwenden, ich habe Befehle verschiedene cURL (v7.46.0) versucht, eine Verbindung zum FTPS-Server. Die Verbindung schlägt fehl. Mein letzter Versuch ist unten. Der Fehler ist fast immer derselbe.

curl -3 -k -v --ftp-ssl --tlsv1.2 --ftp-ssl-reqd --ftp-pasv --key decrypted.key --cacert comodo.crt --cert comodo.cer --user REMOVED:REMOVED ftp://ftps.REMOVED/ 

Ein Beispiel für die Ausgabe lautet:

> curl -3 -v -k --user REMOVED:REMOVED --ftp-ssl --tlsv1.2 --ftp-ssl-reqd --ftp-skip-pasv-ip --cert comodo.cer --key priv.pem ftp://ftps.REMOVED/ 
* Trying REMOVED_IP. 
* Connected to ftps.REMOVED (REMOVED_IP) port 21 (#0) 
< 220 Service ready for new user. 
> AUTH SSL 
< 234 Command AUTH okay; starting SSL connection. 
* ALPN, offering http/1.1 
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH 
* TLSv1.2 (OUT), TLS header, Certificate Status (22): 
* TLSv1.2 (OUT), TLS handshake, Client hello (1): 
* Unknown SSL protocol error in connection to ftps.REMOVED:21 
* Closing connection 0 curl: (35) Unknown SSL protocol error in connection to ftps.REMOVED:21 
>pause 
Press any key to continue . . . 

Merkwürdig, wenn ich mit FileZilla verbinden, kann ich scheinen vorbei an der TLS-Handshake zu bekommen, aber dann bekomme ich verschiedene Fehler, wenn ich zu laden versuchen eine Datei. Da diese Verbindung letztendlich mit cURL hergestellt wird, habe ich mich auf cURL konzentriert.

Ich habe das seit über einer Woche versucht. Der Serveradministrator hat ein Zertifikat von meinem Provider gekauft und kann ohne Probleme eine Verbindung herstellen. Ich bin auf diesen hier gestoßen. Jede Hilfe würde sehr geschätzt werden.

+0

Alle FTPS/cURL Debugging-Tipps auch erkannt werden würde. Ich habe Dinge protokolliert und die Debug-Levels erhöht, um maximale Informationen zu erhalten. – geonaut

+0

Versucht, SSL v3 nach folgender Antwort zu erzwingen: http://stackoverflow.com/questions/5797367/error-access-ftp-site-from-unix-curl-35-unknown-ssl-protocol-error-in – geonaut

+0

Stack Overflow ist eine Seite für Programmier- und Entwicklungsfragen. Diese Frage scheint off-topic zu sein, weil es nicht um Programmierung oder Entwicklung geht. Siehe [Welche Themen kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) in der Hilfe. Vielleicht [Super User] (http://superuser.com/) oder [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) wäre ein besserer Ort, um zu fragen. Siehe auch [Wo veröffentliche ich Fragen zu Dev Ops?] (Http://meta.stackexchange.com/q/134306) – jww

Antwort