Estou tentando ativar o SSL no Tomcat (executando um domínio personalizado na instância do Ubunbu no Google Compute Engine).
Eu criei o certificado Let's Encrypt, ele criou 4 arquivos em /etc/letsencrypt/live/mydomain.com
:
cert.pem
chain.pem
fullchain.pem
privkey.pem
Então:
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
Ativar conector:
<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"
/>
Eu recebo o erro:
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
Se eu verificar o keystore com
keytool -list -v -keystore /opt/tomcat/conf/.keystore
lista o certificado (presumo corretamente).
Eu tenho a porta 8443 permitida (mas também recebo o mesmo erro para 443). Se eu comentar este conector eu sou capaz de se conectar ao mydomain sobre http muito bem.
O que estou perdendo neste processo? Eu li muitos posts sobre este tópico, mas não consigo descobrir o que mais é necessário. Tudo parece estar funcionando corretamente, exceto o conector.
Tags ssl tomcat linux lets-encrypt