SSL-Listener kann nicht hinzugefügt werden, Serverzertifikat für den Schlüssel nicht gefunden

19

Ich versuche, SSL auf meinem Load Balancer mit einem Zertifikat einzurichten, das ich bei GoDaddy gekauft habe.

Beim Versuch, das Zertifikat in die Konsole hochzuladen, ist ein Fehler aufgetreten

Fehler beim Erstellen des Lastenausgleichs: Serverzertifikat für den Schlüssel nicht gefunden: arn: aws: iam :: ***********: server-certificate / mycert

Ich habe diesen Fehler noch nie beim Hinzufügen von SSL-Zertifikaten festgestellt. Ich bin mir nicht sicher, warum iamhier überhaupt verwendet wird.

Nach einigem Googeln konnte ich mein Zertifikat iammit aws cli hochladen (auch hier bin ich mir nicht sicher, warum ich das tun musste).

Wenn ich nun die Listener ändere, kann ich mein hochgeladenes Zertifikat als vorhandenes SSL-Zertifikat sehen. Wenn ich jedoch versuche, meine Änderungen im Load Balancer zu speichern, wird derselbe Fehler angezeigt. Ich habe bestätigt, dass das Zertifikat existiert:

$ aws iam list-server-certificates
{
    "ServerCertificateMetadataList": [
        {
            "ServerCertificateId": "*********************", 
            "ServerCertificateName": "mycert", 
            "Expiration": "2018-11-19T18:47:38Z", 
            "Path": "/", 
            "Arn": "arn:aws:iam::************:server-certificate/mycert", 
            "UploadDate": "2015-11-19T19:23:32Z"
        }
    ]
}

(Ich habe überprüft, dass die verdeckte Kontonummer hier mit der im Fehler übereinstimmt.)

Ab hier stecke ich fest. Warum kann ich mein Zertifikat nicht auf diesen Load Balancer anwenden?


Edit Thu Nov 19 11:47:18 PST 2015

Nachdem ich eine Weile gewartet und mich aus- und wieder angemeldet hatte, konnte ich die Listener mit meinem SSL-Zertifikat aktualisieren. Es scheint jedoch nicht richtig zu funktionieren. Beim Versuch, meine Domain über HTTPSdie Anfrage zu laden, tritt eine Zeitüberschreitung auf. Es scheint, dass das Zertifikat nicht geladen werden kann

$ echo | openssl s_client -connect www.example.com:443 2>/dev/null | openssl x509 -noout -subject
unable to load certificate
69457:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-52.30.1/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE
Steve Robbins
quelle
1
Zertifikate werden immer in IAM gespeichert, es scheint also, dass Sie eine IAM-Replikationsverzögerung oder einen anderen Fehler festgestellt haben, bei dem das Zertifikat in Ordnung zu sein schien, aber dann nicht da war ... was Sie ursprünglich hätten arbeiten sollen. Ist die ELB-Sicherheitsgruppe für HTTPS weltweit offen? Wenn ja, dann haben Sie hier eine zweite Anomalie und ich würde vorschlagen, eine neue ELB von Grund auf neu zu erstellen und zu prüfen, ob sie sich anders verhält.
Michael - Sqlbot

Antworten:

30

Ich hatte das gleiche Problem beim Versuch, die ELB über die Webkonsole zu erstellen. Ich habe versucht, dort ein neues Zertifikat über die GUI hochzuladen und es schlug schließlich mit demselben Fehler fehl. Ich habe es gelöst, indem ich die Zertifikatsdateien separat über aws cli hochgeladen habe. Dies wird in diesem Dokument erläutert: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ssl-server-cert.html#upload-cert

Laden Sie das Zertifikat, den privaten Schlüssel und die Zertifikatkette wie folgt hoch

aws iam upload-server-certificate --server-certificate-name my-server-cert \
  --certificate-body file://my-certificate.pem --private-key file://my-private-key.pem \
  --certificate-chain file://my-certificate-chain.pem

Rufen Sie dann die Webkonsole auf und wählen Sie die Option "Vorhandenes Zertifikat aus AWS Identity and Access Management (IAM) auswählen" und das soeben hochgeladene Zertifikatpaar aus. Danach wird es gut funktionieren.

suryasankar
quelle
1
Ich hatte das gleiche problem Lösen Sie es so, wie Sie es beschrieben haben, indem Sie den aws-Client verwenden, wie es der Link angibt, den Sie teilen. Die Verwendung des IAM Console-Webformulars zum Einfügen von Schlüssel, CRT und Kette hat bei mir NICHT funktioniert. Ich habe den aws-client auf meinem dev-Rechner installiert, mit "aws configuration" eingerichtet, um Anmeldeinformationen hinzuzufügen, und dann den Befehl aws iam uplad-server-certificate ausgeführt ...
wojjas
GUI gab mir Probleme, CLI nicht ... wie üblich.
Spechal
1
Für ein Update (es ist jetzt 2017) habe ich gerade mit Amazon-Support gesprochen und dies ist NOCH ein bekanntes Problem. Die CLI ist die einzige Möglichkeit, um sicherzustellen, dass dieser Prozess ordnungsgemäß funktioniert. -_-
Nicholas Kreidberg
2
Mitte 2017 und das Problem besteht immer noch.
Diogo Melo
2
Ende Januar 2018 - noch und Ausgabe
Andrew S
17

Der Fehler ist irreführend. Das Zertifikat wird hochgeladen. Sobald Sie diesen Fehler erhalten, kehren Sie zum Ändern zurück. Wählen Sie das vorhandene IAM-Zertifikat aus und klicken Sie auf die Dropdown-Liste. Dort sollte das neue Zertifikat angezeigt werden.

user384640
quelle
Das ist mir auch passiert. Ich habe den Fehler erhalten, angenommen, dass das Zertifikat nicht hochgeladen wurde, also habe ich es erneut versucht ... und habe einen anderen Fehler erhalten, der besagt, dass das Zertifikat bereits vorhanden war. Das Verlassen der Benutzeroberfläche "Neues Zertifikat" und das Auswählen des Zertifikats, das ich gerade als "vorhandenes" Zertifikat hochgeladen habe, hat einwandfrei funktioniert.
Coredumperror
1
Vielen Dank! Das ist so durcheinander. Ich kann nicht glauben, dass sie so etwas nicht behoben haben.
Kirchenschiff
das ist genau richtig
shareef
Dies geschieht weiterhin im Workflow zum Hochladen von ELB IAM-Zertifikaten, wurde jedoch im Workflow zum Hochladen von ALB IAM-Zertifikaten behoben.
Josip Rodin
5

Ich hatte das gleiche Problem, konnte es aber glücklicherweise beheben, ohne die CLI drücken zu müssen. Ich habe die ELB dazu gebracht, einen HTTPS-Listener hinzuzufügen, indem sie die Zertifikatskette nach dem Zertifikat selbst in das Feld für das Zertifikat des öffentlichen Schlüssels einfügt .

Der Fehler trat nur auf, wenn die Zertifikatskette in ein eigenes Eingabefeld für die Zertifikatskette in der Konsole eingefügt wurde (als optional markiert). Ich bin mir nicht sicher, warum dies einen Unterschied machte, aber es hat den HTTPS-Listener auf der ELB erstellt und alles war gut.

Matthew Long
quelle
Dies funktionierte gerade für mich mit einem über SSLmate gekauften Comodo DV-Zertifikat. Ein anderes Problem war, dass ich gleich nach dem Klicken auf den letzten "Senden" -Button einen Fehler bekam, der durch erneutes Klicken auf den Button nach ein paar Sekunden behoben wurde (IAM-
Übertragungsverzögerung
3

Dies lag in meinem Fall an einem Sonderzeichen im Zertifikatsnamen:. (Punkt). Alles hat gut funktioniert, nachdem alle Punkte aus dem Zertifikatnamen entfernt wurden

essis
quelle
1
Und entfernen Sie auch "-" dash
ysrb
2

Ich habe das auch nur getroffen. Es wurde fünf Mal versucht, einen neuen ELB zu erstellen, der jedoch jedes Mal fehlschlug. Nie versucht, eine API-Variante, aber ich habe es geschafft, das SSL-Zertifikat von zu setzen

  1. Zuerst die ELB erstellen; dann
  2. Ändern des Listeners durch Wechseln von HTTP zu HTTPS und Hochladen meines Zertifikats + Schlüssels + Zwischenprodukten.
Ztyx
quelle
1

Ich stand vor dem gleichen Problem. In meinem Fall habe ich beim Hochladen eines SSL-Zertifikats die Fehlermeldung "Serverzertifikat für den Schlüssel nicht gefunden" erhalten, aber sie werden schließlich hochgeladen und im Dropdown-Menü angezeigt. Beim Hochladen über CLI treten keine Fehler auf. Als ich mich an den AWS-Support wandte, gab er mir den folgenden Grund für den Fehler an

Der Grund dafür ist die eventuelle Konsistenz. Die hochgeladenen Zertifikate werden in IAM gespeichert. Da IAM über eine umfangreiche Datenbank verfügt, muss sich das hochgeladene Zertifikat in allen Datenbanken verbreiten. Wenn nicht genügend Zeit für die Weitergabe vorhanden ist, kann die ELB, die versucht, dieses Zertifikat abzurufen, es nicht auf dem Endpunkt finden, den sie abfragt. Daher wird "Server-Zertifikat für den Schlüssel nicht gefunden" ausgelöst. Wenn es schließlich weitergegeben wird, kann es später als bereits hochgeladenes Zertifikat angezeigt werden

Ramadas
quelle
1

Ich habe das umgangen, indem ich zum Zertifikatsmanager in der aws-Konsole gegangen bin und zuerst dort hochgeladen habe. Verwenden Sie dann den Assistenten für den Lastenausgleich und wählen Sie das Zertifikat aus, das Sie hochgeladen haben.

user160004
quelle
Überstunden Ich lade SSL zu AWS hoch. Ich starte zu einem anderen Problem. Dieses Mal funktionierte es, indem es im Zertifikatsmanager eingerichtet und dann nur in EC2 Load Balancer verwendet wurde.
user566245
0

Dasselbe Problem bei Verwendung der AWS-Weboberfläche: Ich habe ein gültiges Zertifikat, den richtigen Schlüssel und die vollständige Kette hochgeladen, habe jedoch den oben genannten Fehler erhalten.

Ich habe versucht, das Zertifikat auf einen anderen (Test-) Load Balancer hochzuladen. Der Upload hat funktioniert, aber der Listener-Status lautet dann: "Invalid-Certificate".

Als ich den Dialog "Zertifikat auswählen" erneut öffnete, wurde kein Zertifikat ausgewählt. Aber offensichtlich wurde das Zertifikat korrekt hochgeladen, da ich es in der Zertifikatsliste auswählen konnte.

Also, zurück zu meinem ursprünglichen Load Balancer, habe ich versucht, dieses hochgeladene Zertifikat zuzuweisen, eine seltsame Sache: Es war nicht in der Liste. Ich habe es erneut versucht und das Zertifikat und seinen Schlüssel hochgeladen, aber die Zertifikatskette weggelassen. Das hat funktioniert, also wusste ich, dass es die Kette sein muss, die nicht korrekt ist (es ist ein Commodo-Zertifikat). Ich habe die Kette erneut von der offiziellen Seite heruntergeladen, das gesamte Bundle hochgeladen und es hat funktioniert. Merkwürdige Sache: Wenn ich beide verglichen habe - die korrupte und die neu heruntergeladene -, scheinen sie gleich zu sein. Gleiche Daten, gleiche Serien, gleiche Daten. Aber anders.

Kurz gesagt: Es funktionierte, indem die Zwischenzertifikate erneut heruntergeladen wurden.

nr
quelle
0

Ich hatte das gleiche Problem und was es schließlich behoben hat, war, in die Sicherheitsgruppe für den Lastenausgleich zu gehen und sicherzustellen, dass Port 443 geöffnet wurde.

Chris DeGroat
quelle
0

Bevor Sie den Classic Load Balancer erstellen, müssen Sie ein AMI (Image Ihrer Instanz in der Produktion) erstellen. Gehen Sie dazu zu den Einstellungen für die Erstellung des Load Balancers und führen Sie den Vorgang erneut aus. Danach werden die bereitgestellten Zertifikate und in meinem Fall alles in Ordnung.

dbarenas
quelle
0

Ich umgangen dies nicht in der Füllung optional Zertifikatskette Feld.

Danny Schoemann
quelle
0

Ich hatte das gleiche Problem, wenn ich ein Zertifikat direkt hochlud.

Wenn ich den Certificate Manager (AWS Certificate Manager - ACM) verwendet habe, konnte ich das Zertifikat hochladen. Danach konnte ich das Zertifikat einfach in einer Dropdown-Liste auswählen.

Flokoe
quelle