S / MIME-Signierung mit OpenSSL nicht möglich, auch wenn die Überprüfung erfolgreich war

1

Ich habe ein Client-Zertifikat in Chrome, das ich für die Anmeldung bei StartSSL verwendet habe. Ich habe es mit pk12utilnach exportiert certfile.p12. Jetzt möchte ich es zum Signieren mit S / MIME verwenden.

Ich habe die p12Datei in konvertiert pem.

Zuerst stelle ich sicher, 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, jedoch 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 soll ich tun, damit ich Nachrichten mit kostenlosen StartSSL-Zertifikaten signieren kann?

Janus Troelsen
quelle
catdie Datei certfile.pem. Es sollte -----BEGIN CERTIFICATE-----und Freunde haben. Außerdem ist dies openssl smime -sign möglicherweise nicht erforderlich, -CAfile ca-bundle.crtda Sie keine Signatur überprüfen.
Jww

Antworten:

3

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.

Janus Troelsen
quelle
Sie sollten Ihre eigene Antwort wahrscheinlich als akzeptiert markieren, damit andere wissen, dass dies die Lösung war.
Jww