Ich versuche, ein GoDaddy-SSL-Zertifikat auf einem neuen Load Balancer zu installieren, den ich in Amazon AWS einrichte. Ich habe das Zertifikat ursprünglich bei Godaddy mit dem Programm keytool für die direkte Installation auf einem Glassfish 3.1-Server (Amazon Linux Ami) erstellt. Ich hatte keine Probleme, dieses Setup direkt auf den Server zu bekommen. Ich muss jetzt das Zertifikat vom Webserver auf den neuen Load Balancer verschieben. Amazon verlangt, dass der private Schlüssel und die Zertifikate im PEM-Format vorliegen. Daher habe ich bei GoDaddy das Tool "Rekey" verwendet, um neue Zertifikate zu erstellen. Wenn ich diese im Load Balancer-Setup-Bildschirm der AWS Mgmt Console lade, wird die Fehlermeldung angezeigt: "Zertifikat für öffentlichen Schlüssel und privater Schlüssel stimmen nicht überein."
So erstelle ich die Schlüssel:
$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr
Ich sende dann die CSR-Datei während des "Rekey" -Prozesses an GoDaddy. Sobald der Neuschlüssel abgeschlossen ist, lade ich die 2 neu erstellten Zertifikate herunter (apps.mydomain.com.crt & gd_bundle.crt). Ich lade sie herunter und wähle (Apache) als Servertyp (ich habe auch "other" und "Cpanel" ausprobiert, aber alle scheinen gleich zu sein).
Zu diesem Zeitpunkt entferne ich die Verschlüsselung mit dem folgenden Befehl aus der Datei private.key:
$ openssl rsa -in private.key -out private.pem
An diesem Punkt gehe ich zurück in die AWS Mgmt-Konsole, erstelle den Load Balancer, füge die sichere Serverumleitung hinzu und füge den Inhalt der folgenden Dateien in die entsprechenden Felder auf dem Bildschirm ein, in dem das SSL-Zertifikat eingerichtet werden soll:
private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain
Wenn ich auf die Schaltfläche "Weiter" klicke, wird die Fehlermeldung "Fehler: Öffentliches Schlüsselzertifikat und privater Schlüssel stimmen nicht überein." Angezeigt.
- Gibt es eine Möglichkeit, um zu testen, ob ich eine gültige Fehlermeldung von Amazon erhalte? Es scheint mir seltsam, dass die Schlüssel nicht übereinstimmen würden, wenn ich den Anweisungen von GoDaddy ziemlich genau folge.
Ich habe versucht, die Datei private.key ohne RSA-Verschlüsselung vor dem Erstellen der CSR-Datei zu erstellen, und das scheint keinen Unterschied zu machen.
Ich gehe auch davon aus, dass die von GoDaddy heruntergeladenen CRT-Dateien im PEM-Format vorliegen, bin mir aber nicht sicher, wie ich dies überprüfen soll.
Irgendwelche Ideen?
Antworten:
Für mich war es ein einfacher zweistufiger Schritt:
Konvertieren Sie den privaten Schlüssel in PEM:
openssl rsa -in yourdomain.key -outform PEM
Konvertieren Sie das Zertifikat und das Zertifikatspaket in PEM :
openssl x509 -inform PEM -in yourdomain.crt
openssl x509 -inform PEM -in bundle.crt
quelle
WARNING: can't open config file: /etc/pki/tls/openssl.cnf
-config
Option. Verwenden Sie diese Option, um den Pfad zu der von Ihnen verwendeten Konfigurationsdatei anzugeben.Nur für die Aufzeichnung und alle anderen, die versuchen, es herauszufinden:
yourdomain.key -> Terminalbefehl:
sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem
-> privater Schlüsselyourdomain.crt -> öffentlicher Schlüssel
gd_bundle.crt -> Zertifikatskette
und du bist gut zu gehen :)
quelle
Anscheinend war das Problem die Art und Weise, wie ich den Inhalt des Schlüssels und der Zertifikate in die AWS Management-Konsole kopierte. Ich habe einen Ubuntu-Desktop verwendet, der in Virtual Box auf einem Windows 7-Desktop ausgeführt wird. Kopieren Sie die Werte von einem gedit-Bildschirm und fügen Sie sie in den Browser ein, der auf der Windows-Box ausgeführt wird. Nachdem ich die Schlüssel- und Zertifizierungsdateien in derselben Box wie der Webbrowser (in diesem Fall Windows) geöffnet hatte, gingen die Zertifikate einwandfrei durch. Ich vermute, dass einige Teile der Datei nicht korrekt verarbeitet werden, wenn die gemeinsam genutzte Zwischenablage zwischen Virtual Box-Client und Host verwendet wird. Fall abgeschlossen.
quelle
Wir haben eine alternative Lösung für dieses Problem gefunden. Wir hatten die gleichen Symptome mit dem gleichen Fehler.
Dann haben wir versucht, die PEM-Codes noch einmal einzugeben, aber diesmal haben wir darauf geachtet, einmal die Eingabetaste zu drücken und sicherzustellen, dass sich der Cursor am Ende jedes Fensters in einer leeren Zeile befand. Dann haben wir es gespeichert. ES FUNKTIONIERTE.
Dies hat unser Problem gelöst und könnte es für andere lösen.
quelle
Ein kleines Gotcha. Ich verwende eine Windows-Box (Win 7 Pro) und als ich den Windows-Port von OpenSSL verwendete, hatten die ausgegebenen Dateien End-of-Line-Zeichen (LF) im Unix-Stil.
Ich musste die Datei zum Hochladen des privaten Schlüssels in den Windows-Stil (CRLF) konvertieren.
quelle
Ich kann Ihnen eine alternative Lösung und Informationen vorschlagen. Im Allgemeinen haben alle Zertifikate das PEM-Dateiformat. Sie können einfach einen Notizblock oder einen beliebigen Texteditor öffnen und die empfangenen Dateien im CRT-Dateiformat ziehen. Dies wird normalerweise als .PEM-Datei bezeichnet. Wenn das Zertifikat in Ihr Keytool geladen ist, können Sie das Zertifikat als pfx-Datei aus dem Keytool exportieren. Anschließend können Sie die pfx-Datei vom privaten Schlüssel von der pfx-Datei trennen. Da die pfx-Datei die Kombination Ihres Zertifikats und des privaten Schlüssels ist. Sie können die private Schlüsseldatei also separat abrufen und auf Ihrem Amazon AWS verwenden.
Ich vermute, dass es eine andere Möglichkeit gibt, das Zertifikat zu installieren. Möglicherweise können Sie sich an die Zertifizierungsstelle wenden, und es gibt eine Möglichkeit, Ihr Zertifikat erneut ausstellen zu lassen.
quelle