Hi romber,
Zitat von
romber:
Ich habe heute meinen neuen SSL-Zertifikat von Comodo erhalten. Das sind drei crt-Dateien sowie eine Textdatei mit dem Zertifikat in Textform.
Wie lauten denn die Dateinamen?
Zitat von
romber:
Den Zerifikat konnte ich konvertieren.
Aber für die Verwendung mit
Indy benötige ich noch die Key-File und Root-Zertifikat-File ebenfalls im PEM-Format.
Kann mir jemand ein Tipp geben, wie ich diese konvertiere?
Du hast Dein Zertifikat bereits erfolgreich konvertiert. Wenn Du die .PEM Datei kopierst und mal als Textdatei ansiehst, sollte da etwas stehen wie:
Zitat:
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Den gesamten Teil (inklusive der Linien mit Begin/End) von
Private Key kopierst Du in eine neue Datei, die Du z.B.
Server.key nennst. Den
Certificate Teil ebenso, z.B. in
Server.crt.
Jetzt brauchst Du noch das RootCA Zertifikat. Dies ist das Zertifikat Deines Ausstellers, hier also Comodo . Du hast das RootCA entweder direkt von Comodo erhalten oder aber kannst das Zertifikat aus dem Internet Explorer exportieren (Base64 CER). Übrigens sind CER Base64 Dateien aus Windows identisch mit dem PEM Format.
Die Root CAs von Comodo findest Du z.B. im Firefox unter Tools > Options > Advanced > Encryption > View Certificates > Authorities (einmal in der Gruppe Comodo CA Limited und eins unter GTE Ltd). Dort kannst Du diese Exportieren (als PEM). Welches das richtige ist, hängt von Deinem Zertifikat und Aussteller ab.
Folgende Optionen sind im Server noch wichtig:
- Der Event IdServerIOHandlerSSLOpenSSL.OnGetPassword wird verwendet, um OpenSSL das Passwort für Dein privates Zertifikat zu geben
- IdServerIOHandlerSSLOpenSSL.SSLOptions.Mode auf "sslmServer" stellen
- IdServerIOHandlerSSLOpenSSL.SSLOptions.VerifyDepth steuer die Akzeptanz der Tiefe der Zertifikatskette (z.B. RootCA -> CA1 -> Server Zertifikat entspricht 2)
- IdServerIOHandlerSSLOpenSSL.SSLOptions.Method steuert, welche Protokolle Du unterstützen willst (Kompatibilität sslvSSLv23, heute üblicherweise aber sslvSSLv3 oder sslvTLSv1).
- IdServerIOHandlerSSLOpenSSL.SSLOptions.VerifyMode. sslvrfPeer ermöglicht vom Client ebenfalls ein Zertifikat zu verlangen und über die Methode OnVerifyPeer gegenzuprüfen
Folgende Optionen im Client sind wichtig:
- IdSSLIOHandlerSocketOpenSSL.SSLOptions.Mode auf "sslmClient" oder "sslmUnassigned" stellen
- IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method auf sslvTLSv1 (wie vom Server gefordert) stellen
- IdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyMode. sslvrfPeer ermöglicht mit der Methode OnVerifyPeer das Server Zertifikat zu prüfen
Diese beiden IOHandler weist Du den entsprechenden Komponenten zu. Bei
FTP mit SSL (FTPS auf 21, FTPES auf 990) ist noch wichtig, die DataPortProtection einzuschalten und UseTLS auf Explizit/Implizit oder Require zu stellen, je nach Anforderung und Wunsch.
Gruß Assertor