Не может подписать S/MIME с использованием OpenSSL, даже если "верифицировать" успешно

У меня есть сертификат клиента в Chrome, который я использовал для входа в StartSSL. Я экспортировал это используя 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

Если я использую оригинал p12файл, он тоже не работает, но с другим сообщением об ошибке:

$ 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 ответ

Решение

Я забыл -nodes флаг при создании pem, Это включает в себя закрытый ключ.

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

это pemможет быть использован для подписания.

Другие вопросы по тегам