I cuenta de esto es hilo muy antiguo, pero puede obtener hoy certificados gratuitos de una CA (Autoridad de certificación) llamada Let's Encrypt. Obtener un certificado es bastante fácil usando el cliente de protocolo Certbot ACME (Entorno de administración de certificados automáticos) https://certbot.eff.org/. El cliente requiere acceso raíz en su servidor.
1) Instalar Cerbot usar la escritura certbot-auto
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
./certbot-auto --help
2) Fetch una licencia ya sea usando el plugin independiente o plugin de Webroot. Standalone abre un pequeño servidor al puerto 80 o 443 por lo que cualquiera de los puertos debe estar libre. Webroot usa un servidor en ejecución existente. Con orden de marcha independiente
certbot-auto certonly --standalone --standalone-supported-challenges http-01 -d yourdomain.com
con tanto plugin de Webroot y autónomo plugin de la certbot opción certonly buscará un certificado y lo almacena en/etc/letsencrypt// en vivo.
3) el certificado de Cifrado de Let son de corta duración (sólo 90 días), a fin de recordar para renovar los
certbot-auto renew
4) Una vez que tenga su certificado, es necesario convertirla a formato PKCS12 y almacenarla a Almacén de claves de Java.
openssl pkcs12 -export -in /etc/letsencrypt/live/yourdomain.com/fullchain.pem -inkey /etc/letsencrypt/live/yourdomain.com/privkey.pem -out /etc/letsenscrypt/live/yourdomain.com/pkcs.p12 -name mytlskeyalias -passout pass:mykeypassword
keytool -keystore /path/to/my/keystore -delete -alias ‘mytlskeyalias’ -storepass ‘mystorepassword’
keytool -importkeystore -deststorepass mystorepassword -destkeypass mykeypassword -destkeystore /path/to/my/keystore -srckeystore /etc/letsencrypt/live/mydomain.com/pkcs.p12 -srcstoretype PKCS12 -srcstorepass mykeypassword -alias mytlskeyalias
Todos los pasos se describen con más detalle en https://vaadin.com/blog/-/blogs/enabling-https-in-your-java-server-using-a-free-certificate
A continuación, sigue los enlaces de Nikola Yovchev para contenedores de servlets específicos para habilitar SSL/TLS.
Cómo se configura SSL dependerá del servidor web que esté utilizando (por ejemplo, Tomcat, Apache). Puede usar un certificado autofirmado, pero sus usuarios recibirán una advertencia sobre el certificado. Necesitará comprar un certificado de una CA confiable (autoridad certificadora). – jordanm
Ya no es necesario comprarlo ya que hay un servicio gratuito que puede usar para obtener un certificado válido. Aquí hay instrucciones específicas de Java sobre cómo usar el servicio Let's Encrypt: https://vaadin.com/blog/-/blogs/lazy-loading-with-vaadin-8 – mstahv