当前位置:  开发笔记 > 后端 > 正文

尝试生成pfx文件时无法加载证书

如何解决《尝试生成pfx文件时无法加载证书》经验,为你挑选了1个好方法。

在过去的三个小时里,我一直在努力创造一个.pfx文件使用OpenSSL.我一直在关注此文档,并按照Get a certificate using OpenSSL标题下的说明进行操作.

我在这里的步骤:openssl pkcs12 -export -out myserver.pfx -inkey myserver.key -in myserver.crt我正在使用OpenSSL.exe控制台.

我收到错误: unable to load certificates

我也试过这个:x509 -text -in myserver.key并收到错误:0906D06D06C:PEM_read_bio:no start line:.\crypto\pem\pem_lib.b.c:703:Expecting: TRUSTED CERTIFICATE 如果我尝试myserver.crt,我也会收到错误.

无论我做什么,我似乎都能得到它.

有人可以帮忙吗?



1> jww..:

我收到错误:无法加载证书

myserver.crt需要采用PEM格式.是否有----- BEGIN CERTIFICATE ---------- END CERTIFICATE -----


myserver.crt实际上应该是一个证书链(而不仅仅是一个服务器证书).链应包括客户端验证链所需的所有中间证书.

您发送所有中间证书来解决"哪个目录"问题."哪个目录"是PKI中众所周知的问题.本质上,客户端不知道从哪里获取缺少的中间证书.为了避免这个问题,你发送所有中间体.

我经常使用Startcom,因为它们提供免费的Class 1证书.当我从他们那里获得签名的服务器证书(例如,www-example-com.crt)时,我将他们的Class 1 Server Intermediate添加到它.我从他们的Startcom CA证书网站上获得了他们的Class 1 Server Intermediate .我使用的是sub.class1.server.ca.pem.

使用www-example-com.crt,我的服务器证书如下所示:

$ cat www-example-com.crt

-----BEGIN CERTIFICATE-----
< My Server Certificate >
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
< Startcom Intermediate >
-----END CERTIFICATE-----

为完整起见,私钥(例如www-example-com.key)也采用PEM格式.它使用-----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----.

使用PEM格式的服务器证书(以及所需的中间人)和私钥,然后我发出以下内容(看起来与您使用的命令相同):

openssl pkcs12 -export -in www-example-com.crt -inkey www-example-com.key -out www-example-com.p12

客户端连接时,它们使用Startcom CA. 因此,要测试连接(加载到IIS后):

openssl s_client -connect www.example.com:443 -CAfile startcom-ca.pem

该命令应以"验证OK"完成:

SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: 37E5AF0EE1745AB2...
    Session-ID-ctx:
    Master-Key: 7B9F8A79D3CC3A41...
    Key-Arg   : None
    Start Time: 1243051912
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

我也试过这个:x509 -text -in myserver.key并收到错误...

x509是证书.如果要转储密钥,请使用OpenSSL pkey命令.请参阅有关OpenSSL pkey(1)命令的文档.


`openssl pkcs7 -in file.pem -print_certs -out certs.pem`.不过,我从来没有使用过这个命令.我总是得到PEM或DER编码的证书.使用DER证书,我转换为PEM.我执行上面的内容.
`-in`的参数必须是证书.你需要一个证书,而不是私钥:)
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有