在Tomcat Apache Web Server上安装WildCard SSL证书(通过Comodo)

时间:2015-01-27 06:03:09

标签: java tomcat ssl tomcat7 keytool

我正在将一个通配符SSL证书安装到我的密钥库,该密钥库将用于Apache Tomcat Web服务器。 说明: 我的Tomcat服务器安装在Windows 2012服务器上。 我有COMODO提供的证书。 我以前在几台服务器上使用过的通配符证书。所以我在我的apache tomcat服务器上直接安装它。 所以我使用keytool生成了一个公钥库,提供了使用以下工具命令购买证书时使用的相同信息。

keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tomcat.keystore

然后我使用以下commond将证书附加到生成的密钥库 对于" Comodo"证书

i.keytool -import -trustcacerts -alias root -file AddTrustExternalCARoot.crt -keystoreselfservice.keystore

我使用了正确的安装证书链,如root,所有中间,主要来自上面的命令。

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

"Certificate added to keystore"

虽然我没有任何错误。 当我打开我的密钥库时,没有证书链,意味着每个证书都有单独的条目。但是没有像Root这样的证书的链层次结构,然后是主要的中间证书。 在我的最终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

所以我想知道我错过了哪些步骤或使用了任何额外的步骤。 请提供安装通配符证书的解决方案。 提前致谢

2 个答案:

答案 0 :(得分:0)

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

您真正需要使外卡证书在您的服务器上运行的是导入它的私钥部分。

答案 1 :(得分:0)

我假设你的意思是Tomcat使用Java SSL(JSSE)而不是APR / Native(OpenSSL)。如果您想要Tomcat-APR,请更改您的问题。

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

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

如果现有服务器是OpenSSL(包括Apache httpd和nginx),请将OpenSSL PEM格式转换为PKCS#12(最好在旧服务器上);取决于该服务器的文件布局,这类似于

openssl pkcs12 -export -in certfile -inkey keyfile -certfile chaincert -out xxx

然后使用keytool将PKCS#12转换为JKS(最好是在新服务器上)

keytool -importkeystore -srckeystore xxx -srcstoretype pkcs12 -destkeystore yyy

请注意,您必须在PKCS#12上使用密码。这不是需要与旧服务器密钥文件(如果有)或新服务器JKS相同,但如果它是通常更方便。

如果现有服务器是IIS,您应该能够从mmc的证书管理单元中导出带有私钥AS PFX / PKCS#12的证书,然后将PKCS12转换为JKS。 / p>

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