我想第一次在tomcat 8中实现SSL .
我有.pem文件形式的第三方签名X.509证书 .
但是在配置后我尝试启动tomcat时,它给出了以下错误:
2017年11月22日18:48:01.735 INFO [main] org.apache.coyote.AbstractProtocol.init初始化ProtocolHandler [“https-jsse-nio-8443”] 2017年11月22日18:48:01.897严重[main] ] org.apache.coyote.AbstractProtocol.init无法初始化与ProtocolHandler相关的终点[“https-jsse-nio-8443”] java.lang.IllegalArgumentException:java.io.IOException:别名[null]无法识别关键词......
以下是我遵循的步骤:
-
将certificate.pem重命名为certificate.p7b .
-
应用以下命令将证书导入密钥库:
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 Configuration:
<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 回答
问题是由于tomcat配置中缺少参数“keyAlias” .
但是别名并没有解决我的问题 . 它开始使用别名而不是null :)抛出相同的错误 .
根据@ dev_thompson_085的评论,我发现我错过了这个过程的密钥文件 . 所以我根据网址尝试使用自签名X.509证书:https://www.ibm.com/support/knowledgecenter/en/SSWHYP_4.0.0/com.ibm.apimgmt.cmc.doc/task_apionprem_gernerate_self_signed_openSSL.html
它对两个文件都很有效 .