Tôi có đặc quyền xử lý ~ 5 CSR SSL mỗi tuần, kiểm tra tính hợp lệ của chúng trước khi chuyển chúng cho CA của chúng tôi để xử lý. Tôi sử dụng OpenSSL trên máy Ubuntu để kiểm tra xem chúng có hợp lệ không, kiểm tra những thứ như tên OU chính xác, CN hợp lý, kích thước khóa> = 2048 bit, v.v., vì yêu cầu của chúng tôi đôi khi không chính xác.
Hôm trước tôi nhận được yêu cầu gia hạn từ máy IIS7. Tôi không thể tìm ra cách đọc này, sử dụng OpenSSL. Nó là hợp lệ, vì CA của tôi đã chấp nhận nó ...
'file (1)' nói rằng đó là "văn bản yêu cầu ký chứng chỉ bảo mật RFC1421", đó là những gì nó nói với ~ 50% số CSR tôi có ở đây (phần còn lại là "yêu cầu chứng chỉ PEM").
$ head iis7rcsr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIQsQYJKoZIhvcNAQcCoIIQojCCEJ4CAQExCzAJBgUrDgMCGgUAMIIJegYJKoZI
hvcNAQcBoIIJawSCCWcwggljMIIIzAIBADCB2zELMAkGA1UEBhMCTloxDTALBgNV
BBEMBDkwNTQxDjAMBgNVBAgMBU90YWdvMRAwDgYDVQQHDAdEdW5lZGluMRwwGgYD
...
...
openssl req
, đọc CSR (PKCS # 10) không hiểu được ...
$ openssl req -in iis7rcsr -text
unable to load X509 request
5156:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1316:
5156:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509_REQ_INFO
5156:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:748:Field=req_info, Type=X509_REQ
5156:error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib:pem_oth.c:83:
Bài viết này của Andreas Klein trên blog MSDN cho thấy rằng CSR đổi mới IIS7 là một thùng chứa PKCS # 7, với CSR và chữ ký dựa trên chứng chỉ hiện tại ... nhưng tôi vẫn không thể đọc được.
$ openssl pkcs7 -in iis7rcsr -text
unable to load PKCS7 object
6581:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: PKCS7
Tôi có thể sử dụng 'openssl base64' để giải mã tệp và trong tệp nhị phân kết quả, tôi có thể thấy các chuỗi trông giống như CSR và một số tham chiếu CA phải xuất phát từ chữ ký dựa trên chứng chỉ cũ. Vì vậy, ý tưởng về container (CSR, chữ ký) nghe có vẻ hợp lý.
Nhưng tôi vẫn không thể tìm ra cách đọc CSR trong đó! Tôi đã thử rất nhiều thứ, tôi sẽ không liệt kê chi tiết ở đây, nhưng đây là những điểm cao của các biến thể tôi đã thử: pkcs12 pkcs7 PEM DER req x509 xác minh ...
Tôi không thể đăng CSR ở đây không may. Bất cứ ai có thể giúp tôi tìm ra một cách đọc / xác minh tập tin này?
openssl asn1parse
có thể đọc yêu cầu và từ đó tôi có thể trích xuất CSR bình thường. Tôi chưa thể tự trả lời được (đã giải quyết quá nhanh) vì vậy tôi sẽ cập nhật câu hỏi bằng giải pháp và sau đó sửa vào ngày mai :-)