ssl设置嵌入式tomcat Spring启动

时间:2017-09-13 14:29:20

标签: spring tomcat ssl spring-boot

我有一个由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]

我做错了什么?

1 个答案:

答案 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上无用且被忽略,因为无法修改已经认证的密钥的任何属性。