0

我需要使用我的自签名证书链创建一个 .keystore 文件。

我尝试了2种方法。

方法一:

https://blog.didierstevens.com/2008/12/30/howto-make-your-own-cert-with-openssl/

我使用上面的帖子来创建我的自签名证书链。我将 .crt 转换为 .p7b 并尝试创建密钥库文件,但在 OpenSSL 中出现“输入不是 X.509 证书”。

我正在使用Windows机器。所以我打开了 .crt 文件,单击“复制到文件”并将其保存为 .p7b 文件。

方法二:

https://www.pixelstech.net/article/1450354633-Using-keytool-to-create-certificate-chain

我使用上面的帖子创建了带有证书链的密钥库,但是当我将它添加到时,我的浏览器中出现“无法访问此站点”错误,并且日志中没有错误。

我的连接器如下:

<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" connectionTimeout="20000" debug="0" disableUploadTimeout="true" enableLookups="false" keystoreFile="test.keystore" keystorePass="test" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" name="SSL" port="9372" scheme="https" secure="true" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" sslProtocol="TLS"/>

如果密钥库文件只有一个证书,则上述连接器有效。因此,问题在于生成密钥库的过程。

如何成功地将证书链添加到我的密钥库?

编辑 :

<Connector SSLEnabled="true" acceptCount="100" clientAuth="false" connectionTimeout="20000" debug="0" disableUploadTimeout="true" enableLookups="false" keystoreFile="test.p12" keystorePass="test" keystoreType="PKCS12" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" name="SSL" port="9372" scheme="https" secure="true" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" sslProtocol="TLS"/>

我将密钥库的格式从.keystore 修改为.p12。我的应用程序现在运行,但“Didier Stevens 代码签名 ( https://DidierStevens.com )”的状态显示“此证书正常”。而“Didier Stevens(https://DidierStevens.com)”的状态显示“此 CA 根证书不受信任,因为它不在受信任的根证书颁发机构存储中。”。应该是相反的,但不知道是什么问题。

在此处输入图像描述

4

1 回答 1

0

您引用了“如果密钥库文件只有一个证书,则上述连接器有效。因此,问题在于生成密钥库的过程。” 因此,如果问题是在密钥库中选择一组特定的证书/密钥,您需要将其指定为连接器的一部分。

如果未指定,则将使用第一个条目。

见这里:https ://tomcat.apache.org/tomcat-7.0-doc/config/http.html#Common_Attributes

属性keyAlias

用于密钥库中服务器密钥和证书的别名。如果未指定,将使用从密钥库中读取的第一个密钥。从密钥库中读取密钥的顺序取决于实现。从密钥库中读取密钥的顺序可能与添加它们的顺序不同。如果密钥库中存在多个密钥,强烈建议配置 keyAlias 以确保使用正确的密钥。

于 2017-12-26T14:49:52.060 回答