Saya memiliki hak istimewa untuk menangani ~ 5 CSR SSL per minggu, memeriksa validitasnya sebelum meneruskannya ke CA kami untuk ditindaklanjuti. Saya menggunakan OpenSSL pada mesin Ubuntu untuk memeriksa apakah mereka valid, menguji hal-hal seperti nama OU yang benar, CN yang masuk akal, ukuran kunci> = 2048 bit dan seterusnya, karena permintaan kami kadang-kadang salah.
Suatu hari saya menerima permintaan perpanjangan dari mesin IIS7. Saya tidak tahu cara membaca ini sama sekali, menggunakan OpenSSL. Itu valid, karena CA saya menerimanya ...
'file (1)' mengatakan ini adalah "teks Permintaan Penandatanganan Sertifikat Keamanan RFC1421", yang dikatakan ~ 50% dari CSR yang saya miliki di sini (sisanya adalah "permintaan sertifikat PEM").
$ head iis7rcsr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIQsQYJKoZIhvcNAQcCoIIQojCCEJ4CAQExCzAJBgUrDgMCGgUAMIIJegYJKoZI
hvcNAQcBoIIJawSCCWcwggljMIIIzAIBADCB2zELMAkGA1UEBhMCTloxDTALBgNV
BBEMBDkwNTQxDjAMBgNVBAgMBU90YWdvMRAwDgYDVQQHDAdEdW5lZGluMRwwGgYD
...
...
openssl req
, yang bertuliskan CSR (PKCS # 10) gagal memahaminya ...
$ 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:
Artikel ini dari Andreas Klein di blog MSDN menunjukkan bahwa pembaruan CSR IIS7 adalah wadah PKCS # 7, dengan CSR dan tanda tangan berdasarkan sertifikat saat ini ... tapi saya masih belum bisa membacanya.
$ 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
Saya dapat menggunakan 'openssl base64' untuk men-decode file, dan dalam file biner yang dihasilkan saya dapat melihat string yang terlihat seperti CSR, dan beberapa referensi CA yang harus berasal dari tanda tangan berdasarkan sertifikat yang lama. Jadi gagasan tentang wadah (CSR, tanda tangan) terdengar masuk akal.
Tetapi saya masih tidak dapat menemukan cara membaca CSR yang ada di sana! Saya telah mencoba banyak hal, saya tidak akan mencantumkan detailnya di sini, tetapi di sini ada beberapa variasi yang telah saya coba: pkcs12 pkcs7 PEM DER req x509 memverifikasi ...
Sayangnya saya tidak dapat memposting CSR itu sendiri di sini. Adakah yang bisa membantu saya menemukan cara membaca / memverifikasi file ini?
openssl asn1parse
dapat membaca permintaan, dan dari sana saya dapat mengekstrak CSR normal. Saya belum bisa menjawab sendiri (menyelesaikannya terlalu cepat) jadi saya akan memperbarui pertanyaan dengan solusinya, dan kemudian memperbaikinya besok :-)