2017-10-24 8 views
0

Es gibt ein paar ähnliche Frage hier, aber keiner von ihnen beantwortet meinen Fall. Ich versuche, ein SSL-Zertifikat zu erhalten, um in CURL über HTTPS für einen Webdienst zu arbeiten.OpenSSL-Zertifikat-Erstellung und PEM/CER-Ausgabe

Zuerst habe ich die csr

openssl req -newkey rsa:2048 -keyout myserver_private.key -out myserver_pkcs10.csr 

ich beide Dateien auf meinem Linux-Box haben.

schickte ich die csr-Datei vom Web-Service unterzeichnet werden und sie zurückgeschickt:

signingauthority_Root_CA.crt, myserver_pkcs10.csr, theirserver_CA.crt

Für meine curl_setopt($ch, CURLOPT_SSLCERT, "?.pem"); ich die .pem-Datei jetzt brauchen. Wie erstelle ich das und aus welcher Datei? theirserver_CA.crt?

Muss ich auch curl_setopt($ch, CURLOPT_CAINFO, "?.cer"); verwenden und wenn ja, wie erstelle ich diese .cer-Datei? Ist das die Vermittler aka Signierungsbehörde?

Antwort

1

Öffnen Sie die *.crt Dateien mit einem Texteditor. Wenn sie PEM sind, enthalten sie Blöcke von Base64-Text, der mit -----BEGIN CERTIFICATE----- und -----END CERTIFICATE----- begrenzt ist.

Wenn das der Fall ist, benennen Sie einfach die Datei um.

Wenn es sich bei der Datei um eine Binärdatei handelt, handelt es sich um DER. Zur Umrechnung in Base64 (PEM) verwenden:

openssl x509 -in <DER filename> -outform PEM -out <PEM filename> 

Die CURLOPT_CAINFO wird theirserver_CA.crt

Ich habe die CA gedacht hätte hätte zurück myserver.crt auch geschickt, die für CURLOPT_SSLCERT verwendet würde.

Verwendung:

openssl x509 -noout -subject -issuer -in <PEM file> 

das Thema und Emittenten jedes Zertifikat, um zu sehen, herauszufinden, was Sie geschickt worden sind.

+0

Das ist richtig. Ich habe es herausgefunden, bevor Sie geantwortet haben, aber es war gut zu wissen, dass es im Grunde richtig war. Ich konvertierte jede Datei in DER, dann in PEM (vielleicht war es auf diese Weise nicht unbedingt notwendig). Dann habe ich den Inhalt von 'myserver_private.key' zu' myserver_pkcs10.pem' hinzugefügt, bevor '----- BEGIN CERTIFICATE -----' und die Datei in 'myserver_full.pem' umbenannt. Als ich 'myserver_pkcs10.pem' (ohne den privaten Schlüssel) in' CURLOPT_SSLCERT' ausprobiert habe, habe ich einen Fehler gemeldet, also dachte ich, dass ich auch den privaten Schlüssel hinzufügen müsste. – Fid