Activación de SSL en Tomcat con un certificado público

Este artículo explica cómo activar SSL en Tomcat con un certificado público. Esto evita que aparezca el mensaje «Safari/Firefox no puede verificar la identidad del sitio web <jamf.miempresa.com>» cada vez que te conectas al puerto seguro de tu instancia de Jamf Pro.
Nota:

Si estás intentando empaquetar un certificado en un almacén de claves para Tomcat, consulta el artículo https://docs.jamf.com/technical-articles/index.html?contextId=138.

El procedimiento general implica los siguientes pasos:
  • Activar e inicializar un almacén de claves vacío

  • Generar una solicitud de firma de certificado (CSR)

  • Importar los certificados generados para usarlos en Tomcat

  • Modificar el archivo server.xml para usar los certificados creados

Nota:

Si usas una autoridad certificadora (CA) de terceros, te recomendamos que te pongas en contacto con ellos para obtener información específica para tu certificado antes de seguir estas instrucciones.

Requisitos generales

  • Jamf Pro 10.0.0 o posterior
  • Un ordenador Linux, Windows o Mac

Nota:

La CLI de las herramientas de servidor de Jamf Pro es compatible con ordenadores Mac con chip de Apple.

Paso 1: Creación de un certificado público para tu servidor de Jamf Pro

Para crear y configurar un certificado público para tu servidor de Jamf Pro con OpenSSL o la Java Keytool, sigue el conjunto de instrucciones correspondiente mostrado a continuación.
Nota:

Todos los comandos de este procedimiento deben ejecutarse a nivel de raíz. En Mac y Linux, escribe sudo antes de cada comando. En Windows, debes ejecutar los comandos como administrador.

Creación del certificado con OpenSSL

  1. Abre el símbolo del sistema o Terminal.
  2. Crea una carpeta en el Escritorio llamada Certs y accede al directorio usando los siguientes comandos:
    mkdir /path/to/Desktop/Certs
    cd /path/to/Desktop/Certs
  3. Ejecuta un comando similar al siguiente para generar una clave privada y una CSR:
    openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key
  4. Cuando el sistema te lo pida, introduce la información correspondiente. El administrador de la autoridad certificadora (CA) te proporcionará los valores para estos campos. Asegúrate de usar un nombre de dominio completo (FQDN), como jamf.miempresa.com.
    Nota:

    Estos valores se usarán para generar un certificado autofirmado en la clave privada nueva. Si usas un certificado autofirmado, puede aparecer el mensaje «Safari/Firefox no puede verificar la identidad del sitio web <jamf.miempresa.com>», salvo que se haya indicado a las máquinas cliente que confíen en este certificado autofirmado. Si usas un certificado autofirmado, salta al paso 6.

  5. Envía la CSR que acabas de crear a una CA válida (pública o interna). Obtendrás un archivo .crt, .cer o .pem. Puedes consultar más información en la documentación del proveedor de la CA.
    Nota:

    Si estás solicitando certificados aparte, solicita un binario con codificación Base 64 (X.509).

  6. Coloca los certificados que has recibido en la carpeta Certs en el Escritorio.
  7. Importa los certificados firmados en el almacén de claves. Consulta la subsección correspondiente al tipo de archivos que has recibido de la autoridad certificadora:

    Si recibes un archivo .p7b de la autoridad certificadora:

    1. Convierte el archivo .p7b a un archivo .cer con el siguiente comando:
      openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    2. Combina el nuevo archivo .cer con la clave privada mediante este comando:
      openssl pkcs12 -export -out SSLCertificate.p12 -inkey privateKey.key -in certificate.cer
    3. Introduce una contraseña de exportación. Esta contraseña es tu contraseña del almacén de claves. Guárdala para usarla en el futuro.

    Si recibes certificados individuales de la autoridad certificadora:

    1. Ponlos en lugar de cada certificado intermedio en el siguiente comando:
      openssl pkcs12 -export -out SSLCertificate.p12 -inkey privateKey.key -in serverCertificate.crt -certfile Intermediate.crt
      Nota:

      Añadirás o eliminarás el parámetro -certfile /path/to/intermediate en función de cuántos certificados intermedios haya proporcionado el proveedor.

    2. Introduce una contraseña de exportación. Esta contraseña es tu contraseña del almacén de claves. Guárdala para usarla en el futuro.

    Si recibes un paquete de certificados de la autoridad certificadora:

    Puedes usarlo en lugar del certificado raíz. Esto permite prescindir de certificados intermedios.

  8. Introduce una contraseña de exportación. Esta contraseña es tu contraseña del almacén de claves. Guárdala para usarla en el futuro.

Creación del certificado con Java Keytool

Requisitos

Este proceso requiere que Java esté instalado en la máquina que vas a usar para crear el almacén de claves.

  1. Abre una ventana de símbolo del sistema o Terminal:
  2. Crea una carpeta en el Escritorio llamada Certs y accede al directorio usando los siguientes comandos:
    mkdir /path/to/Desktop/Certs
    cd /path/to/Desktop/Certs
  3. Ejecuta un comando similar al siguiente para generar un almacén de claves:
    /path/to/keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keypass "password" -storepass "password" -keystore keystore.jks
    Nota:

    Asegúrate de usar la misma contraseña para la clave y el almacén. La contraseña no puede contener caracteres especiales. Debes recordar esta contraseña para importaciones futuras.

  4. Crea una copia de seguridad del almacén de claves y guárdala en un lugar seguro.
  5. Cuando el sistema te lo pida, introduce la información correspondiente. El administrador de la autoridad certificadora (CA) te proporcionará los valores para estos campos. Asegúrate de usar un nombre de dominio completo (FQDN), como jamf.miempresa.com.
    Nota:

    Estos valores se usarán para generar un certificado autofirmado en el nuevo almacén de claves. Si usas un certificado autofirmado, puede aparecer el mensaje «Safari/Firefox no puede verificar la identidad del sitio web <jamf.miempresa.com>», salvo que se haya indicado a las máquinas cliente que confíen en este certificado autofirmado. Si usas un certificado autofirmado, salta al paso 6.

  6. Ejecuta el siguiente comando para generar una solicitud de firma de certificado (CSR) a partir del almacén de claves que acabas de crear:
    /path/to/keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore keystore.jks
  7. Envía la CSR que acabas de crear a una CA válida (pública o interna). Obtendrás un archivo .crt, .cer o .pem.
    Nota:

    Si estás solicitando certificados aparte, solicita un binario con codificación Base 64 (X.509).

  8. Coloca los certificados que has recibido en la carpeta Certs en el Escritorio.
  9. Importa los certificados firmados en el almacén de claves. Si usas un certificado combinado, ejecuta el siguiente comando:
    /path/to/keytool -import -alias tomcat -keystore keystore.jks -trustcacerts -file root.cer

    Si usas varios certificados (como un certificado raíz y/o intermedio y un certificado web firmado), ejecuta comandos como los siguientes para instalar cada certificado:

    /path/to/keytool -import -alias root -keystore keystore.jks -trustcacerts -file root.cer
    /path/to/keytool -import -alias intermediate1 -keystore keystore.jks -trustcacerts -file intermediate1.cer
    /path/to/keytool -import -alias tomcat -keystore keystore.jks -trustcacerts -file cert.cer

Paso 2: Importación del certificado en Jamf Pro

Para importar el certificado en el servidor de Jamf Pro usando el Tomcat Assistant o editando manualmente el archivo server.xml, sigue el conjunto de instrucciones correspondiente mostrado a continuación.

Importación del certificado con el Tomcat Assistant

  1. En Jamf Pro, haz clic en Ajustes en la esquina superior derecha de la página.
  2. Haz clic en Ajustes del sistema.
  3. Haz clic en Ajustes de Apache Tomcat.
  4. Haz clic en Editar.
  5. Selecciona Change the SSL certificate used for HTTPS (Cambiar el certificado SSL usado para HTTPS) y haz clic en Siguiente.
  6. Selecciona Cargar un certificado SSL existente y haz clic en Siguiente.
  7. Haz clic en el botón Cargar y selecciona el archivo keystore.jks o SSLCertificate.p12. A continuación, haz clic en Siguiente.
  8. Introduce la contraseña del almacén de claves y haz clic en Siguiente.
  9. Haz clic en Finalizar y reinicia Tomcat.

Importación del certificado editando manualmente el archivo server.xml

  1. Mueve tu archivo keystore.jks o SSLCertificate.p12 a la carpeta de Tomcat de Jamf Pro. La ubicación de esta carpeta se indica arriba.
  2. Edita el archivo server.xml ubicado en el directorio /Tomcat/conf/. Añade o modifica los atributos certificateKeystoreFile y certificateKeystorePassword en el elemento Certificate para el puerto 8443 de la siguiente manera:
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
       SSLEnabled="true" maxThreads="150" scheme="https"
       secure="true" clientAuth="false"
       <SSLHostConfig
              sslProtocol="TLS"
              <Certificate type="RSA"
                     certificateKeystoreFile="${catalina.home}/.keystore"
                     certificateKeystorePassword="changeit" />
  3. Reinicia Tomcat desde la línea de comandos. Si quieres más información, consulta el artículo Inicio y detención de Tomcat.