Không thể tải chứng chỉ trong OpenSSL


3

Tôi đang cố đọc chứng chỉ bằng OpenSSL do Google Play tạo. Giấy chứng nhận được mô tả như sau:

Khóa công khai RSA được mã hóa Base64 do Google Play tạo ra được mã hóa nhị phân, định dạng X.509 chủ đềPublicKeyInfo DER SEQUENCE.

Tôi đã giải mã chuỗi được mã hóa Base64 đã cho thành nhị phân bằng OpenSSL từ dòng lệnh bằng cách sử dụng:

openssl enc -base64 -d -A <<< THE_KEY_CONTENT > key.der

Các tập tin nhị phân dường như là hợp lý. Đó là 294 byte và byte đầu tiên 0x30mà tôi tin là khớp với a SEQUENCE.

Với tệp nhị phân kết quả, tôi cố chạy lệnh sau:

openssl x509 -inform der -in key.der -out key.pem

Nhưng tôi nhận được các lỗi sau từ OpenSSL:

unable to load certificate 140736245019656:error:0D0680A8:asn1
encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1199:140736245019656:error:0D06C03A:asn1
encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:767:140736245019656:error:0D08303A:asn1
encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested
asn1 error:tasn_dec.c:699:Field=serialNumber, Type=X509_CINF 140736245019656:error:0D08303A:asn1
encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:699:Field=cert_info, Type=X509

Có thứ gì tôi đang thiếu để tải chứng chỉ này không? Tôi cho rằng Google sẽ không cấp cho tôi chứng chỉ xấu!

Câu trả lời:


3

Vấn đề là tôi đã giải thích mô tả có nghĩa là có toàn bộ chứng chỉ X509 có trong .dertệp, trong khi thực tế nó chỉ là mã khóa DER được mã hóa DER.

Kết quả là, lệnh chính xác để phát hành hóa ra là như sau:

openssl rsa -inform der -in key.der -pubin
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.