Không thể ký S / MIME bằng OpenSSL ngay cả khi xác minh thành công


1

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 tin certfile.pem. Nó nên có -----BEGIN CERTIFICATE-----và bạn bè. Ngoài ra, openssl smime -sign có thể không cần -CAfile ca-bundle.crtvì bạn không xác minh chữ ký.
jww

Câu trả lời:


3

Tôi quên -nodescờ khi làm pem. Điều này bao gồm khóa riêng.

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

Điều này pemcó thể được sử dụng để ký kết.


Bạn có thể nên đánh dấu câu trả lời của riêng bạn là được chấp nhận để người khác biết đây là bản sửa lỗi.
jww
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.