web-dev-qa-db-ja.com

「確認」が成功しても、OpenSSLを使用してS / MIME署名できない

StartSSLへのログインに使用したChromeのクライアント証明書を持っています。 pk12utilを使用してcertfile.p12にエクスポートしました。今度はS/MIMEでの署名に使用したいと思います。

p12ファイルをpemに変換しました。

まず、証明書がこの目的で機能することを確認します。

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

今、私は署名しようとします:

$ 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

元のp12fileを使用すると、それも機能しませんが、別のエラーメッセージが表示されます。

$ 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

無料のStartSSL証明書を使用してメッセージに署名できるようにするにはどうすればよいですか?

1
Janus Troelsen

pemを作成するときに、-nodesフラグを忘れました。これには秘密鍵が含まれます。

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

このpemは署名に使用できます。

3
Janus Troelsen