我试图在Tomcat上启用SSL(在Google Compute Engine上运行Ubunbu实例上的自定义域)。
我创build了Let's Encrypt证书,它在/etc/letsencrypt/live/mydomain.com下创build了4个文件:
cert.pem chain.pem fullchain.pem privkey.pem
然后:
cd /etc/letsencrypt/live/mydomain.com openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out pkcs.p12 -name tomcat keytool -importkeystore -deststorepass mypassword -destkeypass mypassword -destkeystore KeyStore.jks -srckeystore pkcs.p12 -srcstoretype PKCS12 -srcstorepass mypassword -alias tomcat sudo cp KeyStore.jks /opt/tomcat/conf/.keystore
启用连接器:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" URIEncoding="UTF-8" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/opt/tomcat/conf/.keystore" keystorePass="mypassword" keyAlias="tomcat" />
我得到的错误:
SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[org.apache.coyote.http11.Http11Protocol-8443]] org.apache.catalina.LifecycleException: Failed to initialize component [Connector[org.apache.coyote.http11.Http11Protocol-8443]] Caused by: java.lang.NullPointerException
如果我检查密钥库
keytool -list -v -keystore /opt/tomcat/conf/.keystore
它列出了证书(我认为是正确的)。
我有端口8443允许(但我也得到443相同的错误)。 如果我注释掉这个连接器,我可以通过http连接到mydomain就好了。
我在这个过程中错过了什么? 我已经阅读了这个主题的许多post,但我似乎无法弄清楚还需要什么。 除了连接器,一切似乎都正常工作。