我有一个由globalsign提供的ssl证书。我想导入证书以与tomcat一起使用它。
我正在进行以下操作
导入链证书
keytool -import -alias root11 -keystore server11.p12 -trustcacerts -file chain.pem -keyalg RSA -keysize 2048 -storetype PKCS12
导入证书
keytool -import -alias tomcatroot11 -keystore server11.p12 -trustcacerts -file file.cert -keyalg RSA -keysize 2048 -storetype PKCS12
在application.properties
中server.ssl.key-store= /Users/Desktop/certificate/server11.p12
server.ssl.key-store-password= password
server.ssl.keyStoreType= PKCS12
server.ssl.keyAlias= tomcatroot11
启动tomcat时出现以下错误
java.lang.IllegalArgumentException: java.io.IOException: Alias name [hcmroot11] does not identify a key entry
at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:114) ~[tomcat-embed-core-8.5.16.jar:8.5.16]
我做错了什么?
答案 0 :(得分:0)
您只导入了证书,而不是任何私钥。 SSL / TLS服务器需要私钥和证书或通常是证书链。请参阅dupe Java SSLHandshakeException: no cipher suites in common(其他链接)或crossdupe https://serverfault.com/questions/858102/jboss-https-configuration-with-cer-p7b-certificate-fails(Jboss的Web服务器组件是Tomcat的一个分支)。
-keyalg
和-keysize
仅用于-genkeypair
,如果您选择使用keytool
在Java中生成密钥和(然后)CSR的方法。它们在-importcert
上无用且被忽略,因为无法修改已经认证的密钥的任何属性。