错误:在Tomcat中实现SSL期间,别名[null]未标识密钥条目

时间:2017-11-22 13:30:45

标签: java tomcat ssl x509 pkcs#11

我正在尝试首次在tomcat 8中实现SSL。

我有.pem文件形式的第三方签名X.509证书。

但是当我尝试启动tomcat配置后,它会给我以下错误:

  

2017年11月22日18:48:01.735 INFO [主要]   org.apache.coyote.AbstractProtocol.init初始化ProtocolHandler   [“https-jsse-nio-8443”] 2017年11月22日18:48:01.897严重[主要]   org.apache.coyote.AbstractProtocol.init无法初始化终点   与ProtocolHandler [“https-jsse-nio-8443”]相关联    java.lang.IllegalArgumentException:java.io.IOException:别名   [null]无法识别关键条目           在......

以下是我遵循的步骤:

  1. 将certificate.pem重命名为certificate.p7b。
  2. 将以下命令应用于将证书导入密钥库:
  3. D:\ keytest2> keytool -import -alias tomcat -trustcacerts -file certificate.p7b -keystore keystore.kdb

    输入密钥库密码:test
    重新输入新密码:test

    ...
    ...
    证书已添加到密钥库

    1. 已检查导入的证书:
    2. D:\ keytest2> keytool -list -v -keystore keystore.kd

      这让我关注了:

      密钥库类型:JKS 密钥库提供商:SUN

      您的密钥库包含1个条目

      别名:tomcat 创作日期:2017年11月22日 条目类型:trustedCertEntry ... ...

      Tomcat配置:

      <Connector port="8443" protocol="HTTP/1.1"
                     maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
                     keystoreFile="file:///D:/keytest2/keystore.kdb" keystorePass="test"
                 clientAuth="false" sslProtocol="TLS">
      

      请指导我在哪里做错了。

1 个答案:

答案 0 :(得分:2)

问题是由于缺少参数&#34; keyAlias&#34;在tomcat配置中。

但是别名并没有解决我的问题。它开始使用别名而不是null抛出相同的错误:)。

根据@ dev_thompson_085的评论,我发现我错过了这个过程的密钥文件。所以我根据网址https://www.ibm.com/support/knowledgecenter/en/SSWHYP_4.0.0/com.ibm.apimgmt.cmc.doc/task_apionprem_gernerate_self_signed_openSSL.html

尝试使用自签名X.509证书

它对两个文件都很有效。