我正在尝试首次在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]无法识别关键条目 在......
以下是我遵循的步骤:
D:\ keytest2> keytool -import -alias tomcat -trustcacerts -file certificate.p7b -keystore keystore.kdb
输入密钥库密码:test
重新输入新密码:test
...
...
证书已添加到密钥库
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">
请指导我在哪里做错了。
答案 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证书它对两个文件都很有效。