Java 在Tomcat Apache Web服务器上安装通配符SSL证书(由Comodo提供)

Java 在Tomcat Apache Web服务器上安装通配符SSL证书(由Comodo提供),java,tomcat,ssl,tomcat7,keytool,Java,Tomcat,Ssl,Tomcat7,Keytool,我正在将通配符SSL证书安装到我的密钥库中,该密钥库将用于Apache Tomcat web服务器。 说明: 我的Tomcat服务器安装在windows 2012服务器上。 我有科摩多提供的证书。 我使用的通配符证书以前已经在一些服务器上使用过。因此,我直接在我的ApacheTomcat服务器上安装相同的组件。 因此,我使用keytool生成了一个公共密钥库,提供了使用以下工具命令购买证书时使用的相同信息 keytool -keysize 2048 -genkey -alias tomcat -

我正在将通配符SSL证书安装到我的密钥库中,该密钥库将用于Apache Tomcat web服务器。 说明: 我的Tomcat服务器安装在windows 2012服务器上。 我有科摩多提供的证书。 我使用的通配符证书以前已经在一些服务器上使用过。因此,我直接在我的ApacheTomcat服务器上安装相同的组件。 因此,我使用keytool生成了一个公共密钥库,提供了使用以下工具命令购买证书时使用的相同信息

keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore
然后,我使用以下commond将我的证书附加到生成的密钥库 科摩多证书

i.keytool -import -trustcacerts -alias root -file AddTrustExternalCARoot.crt -keystoreselfservice.keystore
我已经使用了正确的证书安装链,如root、all intermediate、primary等命令

在安装每个证书时,我收到了以下消息

"Certificate added to keystore"
虽然我没有任何错误。 当我打开密钥库时,没有证书链,这意味着每个证书都有单独的条目。但没有像根证书、中间证书和主证书那样的证书链层次结构。 在我的最终PI或证书中,我将供应商作为本地名字而不是Comodo。 例如:

CN=nims.ABC.com,OU=abcCommunications,O=abc Group LLC, L=Roseville,ST=Minnesota,C=US
提供者必须是

CN=COMODO RSA Organization Validation Secure Server CA,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB
所以我想知道我错过了哪些步骤,或者使用了哪些额外的步骤。 请提供安装通配符证书的解决方案。
提前感谢

你做的每件事都很正确。信任链在另一方面很重要。如果您信任链中的一个“证书”,那么您也信任链中的以下“证书”。因此,要信任CA的所有证书,您只需信任根CA的证书


要使通配符证书在服务器上工作,真正需要的是导入它的私钥部分

我想您指的是Tomcat使用Java SSL JSSE,而不是APR/Native OpenSSL。如果你想要Tomcat APR,改变你的问题

如果要使用的证书已在其他服务器上使用,并且您使用在新服务器上显示的keytool命令生成了公共密钥库,则您生成了一个新密钥,该密钥与其他服务器使用的密钥不同,也与证书中包含的密钥不同,因此,证书与该新密钥不匹配,不能与该新密钥一起使用。您还隐式生成并没有替换自签名证书,主体和颁发者(您称之为提供者)都标识您,而不是像Comodo一样的CA。此证书不适合一般使用,但可用于某些测试,这就是keytool隐式使用它的原因

您需要将证书、与证书相匹配的现有私钥以及所需的链证书作为私钥条目获取到JKS中。如果现有的SSL服务器是使用JSSE的Java,只需复制其JKS即可。如果您想要或需要更改新服务器副本上的密码,请参阅keytool-storepassword和keytool-keypasswd

如果现有服务器是OpenSSL,包括Apache httpd和nginx,则最好在旧服务器上将OpenSSL PEM格式转换为PKCS12;根据服务器的文件布局,这类似于

openssl pkcs12 -export -in certfile -inkey keyfile -certfile chaincert -out xxx
然后在新服务器上使用keytool将PKCS12转换为JKS

keytool -importkeystore -srckeystore xxx -srcstoretype pkcs12 -destkeystore yyy
注意:您必须在PKCS12上使用密码。这不需要与旧的服务器密钥文件(如果有的话)或新的服务器JKS相同,但如果是,通常会更方便

如果现有服务器是IIS,那么您应该能够从mmc的证书管理单元中导出带有私钥的证书(如PFX/PKCS12),然后将PKCS12转换为JKS,如上所述


如果现有服务器是其他服务器,请将其添加到问题中。

谢谢Hannes,您好,我真的不明白,但我的目的是让通配符证书工作。我除了证书什么都没有,我还应该有什么??,