【问题标题】:SSL Certificate on Tomcat - Alias name does not identify a keyTomcat 上的 SSL 证书 - 别名不能识别密钥
【发布时间】:2012-07-03 10:10:54
【问题描述】:

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

我相信我已经将它们全部导入到密钥库中(但显然不是!)但是我从 Tomcat 得到的错误是:'java.io.IOException Alias name does not identify a key entry

如果我执行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 端口上运行良好。

很想听听一些建议:)

【问题讨论】:

    标签: tomcat ssl alias


    【解决方案1】:

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

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

    【讨论】:

    • 啊,好吧,我明白你的意思了。这是我第一次做 SSL,你不能在密钥库中有重复的别名,所以如果 'tomcat' 是 Thawte 提供的 ssl 证书,我要命名的私钥是什么? server.xml 指向的是哪一个?谢谢你的帮助,我一直在努力解决这个问题。
    • 轻微进展 - 将 server.xml 设置为使用别名 1(私钥),现在至少连接器正确打开了该端口。但是我收到一个证书错误“证书不受信任,因为没有提供颁发者链”......情节变厚......
    • 导入证书时,应根据私钥别名(已在密钥库中)导入证书,如 here 所述。话虽这么说,您似乎已经有一个使用该证书构建的 PKCS#12 文件,因此您应该可以直接使用它。看来您可能没有正确构建 PKCS#12 文件(您是否使用了用于请求的私钥?)。您遵循了哪些说明?
    • 天哪,布鲁诺,我欠你一个肾或者我的第一个孩子什么的!谢谢!我按照您链接中的说明进行操作,并且可以正常工作。你太棒了!!!!
    • 短而干净的解决方案!谢谢布鲁诺
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-02-06
      • 2018-02-24
      • 2021-07-16
      • 2018-07-01
      • 2013-07-09
      • 2013-07-09
      • 2014-03-11
      • 2018-05-06
      • 2011-08-09
      相关资源
      最近更新 更多