2016-08-08 5 views
1

Ich bin neu in ssl und openssl. Ich versuche, eine CURL-Anforderung mit einer CER-Datei zu erstellen (ohne die Flags -k oder -insecure zu verwenden). Nachdem die .pem-Datei zu erzeugen, habe ich versucht, die POST-Anforderung die folgende Art und Weise zu erteilen: curl --cacert certificate.pem -XPOST „https://server_ip:server_port?obj1=okaylocken Anfrage mit einem. Cer

Wenn ich meine Server-IP-Adresse verwenden, erhalte ich die Fehlermeldung: curl: (51) Kommunikation mit Peer nicht sicher möglich: angeforderter Domänenname stimmt nicht mit dem Zertifikat des Servers überein.

Wenn ich localhost.localdomain anstelle von Server_ip verwenden, wird die Anforderung korrekt generiert.

Ich verstehe, dass SSL-Zertifikat kann nur einen Hostnamen zu zertifizieren. Gibt es eine Möglichkeit, den Hostnamen anstelle von localhost.localdomain in die IP-Adresse des Servers zu ändern?

Danke

Antwort

0

Wenn ich anstelle des server_ip verwenden localhost.localdomain, wird die Anfrage korrekt generiert.

Sie müssen auf einen Host mit einem Hostnamen zugreifen, für den das Zertifikat ausgestellt wurde. Es ist wirklich nicht viel herum, dass mit curl als -insecure zu verwenden, wie Sie bereits angegeben, dass Sie nicht tun wollten.

Ich verstehe, dass ssl-Zertifikat nur einen Hostnamen zertifizieren kann.

Die meisten Benutzeragenten und fast alle Browser unterstützen alternative Betreff-Namen, mit denen Sie viele angeben können. Browser lesen normalerweise die ersten 100 SANs. SANs können sogar IP-Adressen unterstützen.

Gibt es eine Möglichkeit, die Hostnamen in denen anstelle von localhost.localdomain IP-Adresse des Servers zu ändern

Regel, dass durch DNS erfolgt. Obwohl es so aussieht, als ob Sie versuchen, eine Loopback zu verwenden, können Sie Ihre HOSTS-Datei möglicherweise so bearbeiten, dass sie den Namen enthält, den Sie auf eine Loopback-Adresse verweisen möchten.

+0

Danke vscjones. Ich konnte das Problem lösen, indem ich die Datei/etc/hostname wie vorgeschlagen änderte. Entferne localhost.localdomain und ersetze es durch die IP des tatsächlichen Servers. –