S / MIME-Signatur mit OpenSSL kann nicht ausgeführt werden, auch wenn "Verify" erfolgreich ist

3817
Janus Troelsen

Ich habe in Chrome ein Client-Zertifikat, das ich zum Anmelden bei StartSSL verwendet habe. Ich exportiert sie mit pk12utilzu certfile.p12. Jetzt möchte ich es zum Signieren mit S / MIME verwenden.

Ich habe die p12Datei in konvertiert pem.

Zuerst vergewissere ich mich, dass das Zertifikat für diesen Zweck funktioniert:

$ openssl verify -purpose smimesign -verbose -CAfile ca-bundle.crt certfile.pem certfile.pem: OK 

Jetzt versuche ich zu unterschreiben:

$ echo "lol" | openssl smime -sign -CAfile ca-bundle.crt -signer certfile.pem unable to load signing key file 3074062600:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY 

Wenn ich die Originaldatei p12verwende, funktioniert sie auch nicht, aber mit einer anderen Fehlermeldung:

$ openssl verify -purpose smimesign -verbose -CAfile ca-bundle.crt certfile.p12 unable to load certificate 3074066696:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE 

Was muss ich tun, damit ich Nachrichten mit kostenlosen StartSSL-Zertifikaten signieren kann?

1
`cat` die Datei` certfile.pem`. Es sollte "----- BEGIN CERTIFICATE -----" und Freunde haben. Außerdem benötigt das `openssl smime -sign` * möglicherweise nicht die Option -CAfile ca-bundle.crt, da Sie * keine * Signatur prüfen. jww vor 10 Jahren 0

1 Antwort auf die Frage

3
Janus Troelsen

Ich habe die -nodesFlagge vergessen, als ich das gemacht habe pem. Dies beinhaltet den privaten Schlüssel.

openssl pkcs12 -in certfile.p12 -nodes -out certfile2.pem 

Dies pemkann zum Signieren verwendet werden.

Sie sollten Ihre eigene Antwort wahrscheinlich als akzeptiert markieren, damit andere wissen, dass dies der Fix war. jww vor 10 Jahren 0