我有幸每周处理大约5个SSL CSR,然后将其传递给我们的CA进行检查,以检查其有效性。我在Ubuntu机器上使用OpenSSL来检查它们是否有效,测试诸如正确的OU名称,合理的CN,密钥大小> = 2048位等内容,因为我们的请求有时不正确。
前几天,我收到来自IIS7计算机的续订请求。我完全不知道如何使用OpenSSL来阅读此内容。这是有效的,因为我的CA已接受它...
“ file(1)”表示这是“ RFC1421安全证书签名请求文本”,这是我在这里大约50%的CSR(其余为“ PEM证书请求”)所说的内容。
$ head iis7rcsr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIQsQYJKoZIhvcNAQcCoIIQojCCEJ4CAQExCzAJBgUrDgMCGgUAMIIJegYJKoZI
hvcNAQcBoIIJawSCCWcwggljMIIIzAIBADCB2zELMAkGA1UEBhMCTloxDTALBgNV
BBEMBDkwNTQxDjAMBgNVBAgMBU90YWdvMRAwDgYDVQQHDAdEdW5lZGluMRwwGgYD
...
...
openssl req
,它读取CSR(PKCS#10)无法理解它...
$ 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:
来自MSDN博客上的Andreas Klein的这篇文章建议IIS7更新CSR是PKCS#7容器,具有基于当前证书的CSR和签名...但是我仍然看不到它。
$ 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
我可以使用“ openssl base64”对文件进行解码,并且在生成的二进制文件中,我可以看到类似于CSR的字符串,以及一些CA引用,这些引用必须来自基于旧证书的签名。因此,容器(CSR,签名)的想法听起来很合理。
但是我仍然找不到找到其中的CSR的方法!我已经尝试了很多事情,在这里我不会列出详细信息,但是这里是我尝试过的最高点:pkcs12 pkcs7 PEM DER req x509 verify ...
不幸的是,我不能在此发布企业社会责任。谁能帮助我找出一种读取/验证此文件的方式?
openssl asn1parse
可以读取请求,然后从中提取正常的CSR。我尚无法自我解答(解决速度太快),所以我将使用解决方案更新问题,然后明天进行解决:-)