Tengo un VPS que renté por 4 años en hostinger.mx. Este VPS lo renté para hacer pruebas y experimentos para mi desarrollo personal. Este servidor requería la instalación de un certificado SSL. Cuando tu rentas un VPS eres completamente responsable de él. El soporte técnico es inútil. El server viene provisionado por default con el servidor Apache. En un momento dado tuve la necesidad de instalar Apache Tomcat, porque estaba estudiando Spring-Boot y quería ser capaz de montar mi aplicación web en Tomcat y en un servidor con punta a Internet.
Después de haber tenido éxito montando la aplicación sobre Tomcat me di cuenta que necesitaba instalar un certificado SSL para el servidor a fin de ser capaz de recibir conexiones a través de https. Hoy en día, los navegadores mandan una advertencia al usuario cuando se visitan páginas que todavía usan el protocolo http. Esto puede provocar una baja visibilidad del contenido de nuestra página.
Si mal no recuerdo, el certificado por un año ya viene incluido con el precio de renta del VPS. Para activarlo es necesario llenar una una serie de datos personales junto con algunos datos del servidor al que se le va a instalar. Se debe contar con una cuenta de correo electrónico de administrador ligada al servidor. Después de llenar los formularios, eventualmente llega a tu correo un archivo .zip que contiene los certificados. En mi caso el certificado es marca Sectigo.
Después de pasar un aproximado de 12 horas diarias durante tres días tratando de configurar el certificado SSL, fracasé miserablemente por lo que tuve que solicitar ayuda. Pagué alrededor de USD$200.00 a una persona en un país llamado Georgia (es una república que perteneció a la antigua Unión Soviética). Contraté a esta persona a través de una plataforma para “freelancers” (o personas físicas con actividad empresarial) llamada upwork. Prácticamente no hay información en Google sobre como instalar un certificado SSL Sectigo. Mucha de la información que hay es acerca de la instalación de certificados autofirmados (self-signed certificates) o certificados gratuitos. Creo que hay una autoridad que está expidiendo certificados gratuitos.
Pues bien, en este post comparto la información por la que pagué USD$200.00 para que ustedes no tengan que pagar o peor, que tengan que quebrarse la cabeza durante muchas horas y días. Si se preguntan ¿Por qué solté USD$200.00 para esto? Primero, para aprender algo que no era capaz de aprender por mi mismo. Segundo, para conservar mi valioso tiempo. Tercero, para conservar mi cordura. Esta instalación resultó ser extremadamente frustrante. A la persona que contraté le tomó otros 3 días hallar la respuesta. No me cobró todas las horas que le dedicó. Eso fue muy amable de su parte.
Después de recibir los archivos de la autoridad certificadora, estos deben ser importados en el “keystore”
Paso 1. Hay un archivo .key. Este archivo no se puede importar directamente en el keystore de java. Se tiene que convertir primero a pkcs.p12
sudo openssl pkcs12 -export -in /etc/keys/mandraxcomposites_tech.crt -inkey /etc/keys/HSSL-5fdbd0dd012b8.key -out /etc/keys/mandraxcomposites_tech.p12 -name mandraxcomposites_tech -CAfile /etc/keys/AAACertificateServices -caname root
Paso 2. Se crea un archivo .jks y se importa el archivo .pkcs12 recién creado. Hay que poner especial énfasis en el password que se le pasa a esta aplicación. Solo debe contener caracteres alfanuméricos SIN incluir ningún caracter especial.
sudo keytool -importkeystore -deststorepass pa66Fjm6gKRHXZ -destkeypass pa66Fjm6gKRHXZ -destkeystore /opt/tomcat/apache-tomcat/conf/ssl/mandraxcomposites_tech.jks -srckeystore /etc/keys/mandraxcomposites_tech.p12 -srcstoretype PKCS12 -srcstorepass pa66Fjm6gKRHXZ -alias mandraxcomposites_tech
Se importan los archivos crt.
sudo keytool -importcert -alias root -file /etc/keys/AAACertificateServices.crt -keystore /opt/tomcat/apache-tomcat/conf/ssl/mandraxcomposites_tech.jks
sudo keytool -importcert -alias intermediate -file /etc/keys/USERTrustRSAAAACA.crt -keystore /opt/tomcat/apache-tomcat/conf/ssl/mandraxcomposites_tech.jks
sudo keytool -importcert -alias intermediate2 -file /etc/keys/SectigoRSADomainValidationSecureServerCA.crt -keystore /opt/tomcat/apache-tomcat/conf/ssl/mandraxcomposites_tech.jks
sudo keytool -importcert -alias mandraxcomposites -file /etc/keys/mandraxcomposites_tech.crt -keystore /opt/tomcat/apache-tomcat/conf/ssl/mandraxcomposites_tech.jks
Paso 3. Archivo de configuración de tomcat .xml.
<Connector port="8080" protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
keystoreFile="/opt/tomcat/apache-tomcat/conf/ssl/mandraxcomposites_tech.jks"
keystorePass="pa66Fjm6gKRHXZ"
clientAuth="false"
sslProtocol="TLS"
connectionTimeout="20000" redirectPort="8443" />"
Ex-Ingeniero Mecánico, Ex-Investigador, mi verdadera pasión es el Desarrollo de Software. Me he acomodado bastante bien en el mundo corporativo aunque espero poder independizarme en algunos años y eso solo para saber que se siente ser dueño de una empresa.
excelente articulo alvaro. saludos