将自签名证书链添加到密钥库

时间:2017-12-26 13:19:08

标签: tomcat ssl certificate keytool pkix

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

我尝试了两种方法。

方法1:

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

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

我正在使用Windows机器。所以我打开了.crt文件,Clicked" Copy To File"并将其保存为.p7b文件。

方法2:

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

我使用上面的帖子来创建带有证书链的密钥库,但是当我将其添加到我的密钥库时,我得到了#34;这个网站无法到达"我的浏览器出错,日志中没有错误。

我的连接器如下:

<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"/>

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

enter image description here

1 个答案:

答案 0 :(得分:0)

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

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

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

  

属性 keyAlias

     

用于密钥库中的服务器密钥和证书的别名。如果   未指定,将使用从密钥库读取的第一个密钥。该   从密钥库中读取密钥的顺序是实现   依赖。可能不是从密钥库读取密钥的情况   按照添加的顺序排列。如果存在多个密钥   在密钥库中,强烈建议使用keyAlias   配置为确保使用正确的密钥。