我有一个具有以下证书链的证书:委托->我的CA->我的签发CA->我的JBoss证书。现在,如果我在JBoss实例上安装了证书,则我在该实例上访问的任何页面都将显示为不受信任,因为浏览器无法识别我的发行CA。我知道我的计算机具有Entrust签名授权机构的公钥。如何安装证书,以便任何浏览器都能看到整个证书链?
我制作了所有证书的单个.pem文件,认为它们可以正常工作。它没有。谁能解释我在做错什么,即使这是可能的?
将中间证书添加到pkcs12文件...
这是我在Web和邮件服务器上执行此操作的方法。
首先,www-example-com.crt
是Startcom签署的Web服务器证书。Startcom提供了大多数浏览器和移动设备都可信赖的免费1类证书,因此我使用它们。证书采用PEM格式(----- BEGIN CERT -----
和----- END CERT -----
)。
其次,我打开www-example-com.crt
并附加Startcom的Class 1 Intermediate。我从Startcom的/ certs索引中获得了中间体。现在,我www-example-com.crt
有两个PEM编码的编码证书。
第三,我执行以下操作来创建PKCS12 / PFX文件以在IIS中使用。
openssl pkcs12 -export -in www-example-com.crt -inkey www.example.key -out www-example-com.p12
就您而言,您www-example-com.crt
将至少拥有三个PEM编码的证书:
----- BEGIN CERT -----
< My JBoss Certificate >
----- END CERT -----
----- BEGIN CERT -----
< My Issuing CA >
----- END CERT -----
----- BEGIN CERT -----
< My CA >
----- END CERT -----
链中的第三个证书My CA
--是可选的。如果您的客户My CA
用作信任锚,则不需要它。如果您的客户Entrust
用作信任锚,则需要将其包括在内。
如果cat
你www-example-com.crt
和它不拥有多个证书,则不要继续。openssl pkcs12
在服务器证书具有验证链所需的所有必需中间证书之前,请不要执行。
不要包括Entrust CA证书。
我怀疑Entrust直接与其CA签署。他们也可能使用中间体。因此您的证书链可能看起来像:
----- BEGIN CERT -----
< My JBoss Certificate >
----- END CERT -----
----- BEGIN CERT -----
< My Issuing CA >
----- END CERT -----
----- BEGIN CERT -----
< My CA >
----- END CERT -----
----- BEGIN CERT -----
< Entrust Intermediate >
----- END CERT -----
Entrusts在Entrust根证书中提供其CA和中间证书。我无法告诉您您需要哪个,因为您不会提供URL或向我们显示您拥有的链条。但是我猜测它将会是以下一项或多项:
您可以使用OpenSSL的s_client测试链。这次,您将使用Entrust的证书:
echo -e "GET / HTTP/1.0\r\n" | openssl s_client -connect myserver:8443 \
-CAfile entrust-ca.pem
您可以entrust-ca.pem
从“委托根证书”中获取。运行它,告诉我们您遇到什么错误。或者更好的是,将URL发布到您的服务器,以便我们了解发生了什么。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句