Ich habe ein Zertifikat erstellt und den CN auf die IP-Adresse meines Servers im Format xxx.xxx.xxx.xxx gesetzt. Aber wenn ich versuche, meinen Code in Java auszuführen, erhalte ich eine HTTPS hostname wrong: should be <xxx.xxx.xxx.xx>
Fehlermeldung.
Was könnte falsch sein? Ich bin mir sicher, dass ich mich mit der richtigen IP-Adresse verbinde. Allerdings habe ich den Port des Servers auf dem Zertifikat nicht angegeben. Ist der Port erforderlich, wenn der Wert für CN übergeben wird? Aber ich verwende den Standard-Port für https, der 8443 ist. Außerdem habe ich versucht, meinen CN von der IP-Adresse meines Servers zu "localhost" zu ändern. Es funktioniert danach. Ich denke, wenn der CN-Teil keine IP-Adresse als Wert akzeptiert?
Kannst du mir bitte erklären, wie die CN funktioniert und was ist der erforderliche Wert dafür?
Danke!
Die Identität, die Sie in das Zertifikat eingeben müssen, muss die sein, nach der Sie über die URL suchen. Wenn Sie beispielsweise https://www.example.net
verwenden, muss Ihr Zertifikat für www.example.net
gültig sein. Wenn Sie https://10.0.0.1/
verwenden, muss Ihr Zertifikat für 10.0.0.1
gültig sein.
Der allgemeine Name RDN im Subject-DN des Zertifikats wird normalerweise nur verwendet, wenn (a) kein DNS-Eintrag für den alternativen Antragstellernamen vorhanden ist und (b) nach einem Hostnamen und nicht nach einer IP-Adresse gesucht wird. Dies ist in RFC 2818 Abschnitt 3.1 definiert:
Wenn eine subjectAltName-Erweiterung vom Typ dNSName vorhanden ist, muss diese als Identität verwendet werden. Ansonsten ist das (am meisten spezifische) Common Das Feld Name im Feld Betreff des Zertifikats MUSS verwendet werden. Obwohl die Verwendung des allgemeinen Namens bereits praktiziert wird, ist dies der Fall veraltet und Zertifizierungsstellen sind aufgefordert, die dNSName stattdessen.
[...]
In einigen Fällen wird der URI als IP-Adresse und nicht als Hostname angegeben. In diesem Fall muss die IP-Adresse subjectAltName vorhanden sein im Zertifikat und muss exakt mit der IP in der URI übereinstimmen.
Im Allgemeinen wird die Verwendung der IP-Adresse in Zertifikaten nicht empfohlen (siehe Probleme in RFC 6125 diese Antwort .