Tomcat上的SSL证书 - 别名不识别密钥

时间:2012-07-03 00:47:39

标签: tomcat ssl alias

想知道是否有人可以告诉我哪里搞砸了! 我有一个keytool创建的密钥库,来自Thawte的主要,次要和ssl证书。我最初使用openssl创建了CSR,然后使用记录的过程将私钥转换为PKCS12以导入密钥库。

我相信我已将它们全部导入密钥库ok(但显然不是!)但是我从Tomcat获得的错误是:'java.io.IOException别名不能识别密钥条目

如果我做keytool -list -keystore keystore.ks这就是我得到的:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 4 entries

    secondary, Jun 22, 2012, trustedCertEntry,
    Certificate fingerprint (MD5): EB:A3:71:66:38:5E:3E:F4:24:64:ED:97:52:E9:9F:1B
    tomcat, Jun 22, 2012, trustedCertEntry,
    Certificate fingerprint (MD5): EA:D0:43:F8:7F:D5:1C:4A:BA:A7:F4:64:A9:6A:A1:B0
    primary, Jun 22, 2012, trustedCertEntry,
    Certificate fingerprint (MD5): D6:6A:92:1C:83:BF:A2:AE:6F:99:5B:44:E7:C2:AB:2A
    1, Jul 2, 2012, PrivateKeyEntry,
    Certificate fingerprint (MD5): EA:D0:43:F8:7F:D5:1C:4A:BA:A7:F4:64:A9:6A:A1:B0

我很确定我的Tomcat server.xml没问题,但这也适用于https连接器:

<Connector port="443"
    protocol="org.apache.coyote.http11.Http11Protocol"
    maxHttpHeaderSize="8192"
    SSLEnabled="true"
    maxThreads="150"
    minSpareThreads="25"
    maxSpareThreads="75"
    enableLookups="false"
    disableUploadTimeout="true"
    acceptCount="100"
    scheme="https"
    secure="true"
    clientAuth="false"
    sslProtocol="TLS"
    URIEncoding="UTF-8"
    keystorePass="xxxxxx"
    keystoreFile="/keys/keystore.ks"
    keyAlias="tomcat"/>

有什么想法吗?这是我第一次这样做,所以也许我搞砸了一些非常明显的东西?

网站在端口80上工作正常。

很乐意听到一些建议:)

2 个答案:

答案 0 :(得分:17)

当您使用keytool列出别名时,别名是每个条目的逗号之前的名称。在这里,您有4个条目:secondarytomcatprimary1。只有别名1用于私钥。

(请注意,您可以直接使用keystoreType="PKCS12"来使用PKCS#12文件。)

答案 1 :(得分:0)

我发现this page特别有用..我的情况来自domain.com提供的geotrust证书,其中我只有两个文件:基于文本的证书(x509)和基于文本的私钥。这些说明和转换器类文件就像一个魅力。