Tôi có chứng chỉ ứng dụng khách trong Chrome, mà tôi đã sử dụng để đăng nhập vào StartSSL. Tôi xuất khẩu nó sử dụng pk12utilđể certfile.p12. Bây giờ tôi muốn sử dụng nó để ký với S / MIME.
Tôi đã chuyển đổi p12tập tin thành pem.
Đầu tiên, tôi xác minh rằng chứng chỉ sẽ hoạt động cho mục đích này:
$ openssl verify -purpose smimesign -verbose -CAfile ca-bundle.crt certfile.pem
certfile.pem: OK
Bây giờ tôi thử và ký:
$ 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
Nếu tôi sử dụng p12tệp gốc , nó cũng không hoạt động, nhưng với một thông báo lỗi khác:
$ 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
Tôi nên làm gì để tôi có thể ký tin nhắn với chứng chỉ StartSSL miễn phí?
catcác tập tincertfile.pem. Nó nên có-----BEGIN CERTIFICATE-----và bạn bè. Ngoài ra,openssl smime -signcó thể không cần-CAfile ca-bundle.crtvì bạn không xác minh chữ ký.