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

G33*_*Grl 15 ssl alias tomcat

想知道是否有人可以告诉我在哪里搞砸了!我有一个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
Run Code Online (Sandbox Code Playgroud)

我很确定我的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"/>
Run Code Online (Sandbox Code Playgroud)

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

该站点在端口80上正常工作.

很想听到一些建议:)

Bru*_*uno 17

列出别名时keytool,别名是每个条目的逗号之前的名称.在这里,你有4项:secondary,tomcat,primary1.只有别名1用于私钥.

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

  • 导入证书时,应该根据私钥别名(已经在密钥库中)导入证书,如[here](http://stackoverflow.com/a/9300727/372643)所述.这就是说,您似乎已经拥有使用该证书构建的PKCS#12文件,因此您应该能够直接使用它.您可能没有正确地构建PKCS#12文件(您是否使用了用于请求的私钥?).您遵循了哪些说明? (2认同)
  • OMG Bruno,我欠你一个肾或我的第一个孩子什么的!谢谢你!我按照您链接中的说明进行操作,并且可以正常工作。你真棒!!!! (2认同)