Saltar a contenido

Activar HTTPS

Por qué importa HTTPS

Los navegadores como Chrome exigen que Drovio Server sea accesible por HTTPS para que un usuario pueda compartir su micrófono o su webcam desde el cliente web.

Pasos

  1. Obtenga de su autoridad de certificación un certificado, un certificado intermedio y una clave privada, en .crt y .key o en .pem. En los comandos que siguen se llaman drovioserver.crt, ca.crt y drovioserver.key.

  2. En la máquina donde está desplegado Drovio Server, ejecute los comandos siguientes. Sustituya eUv4ffT4 por una contraseña de su elección y your_hostname por el nombre de host para el que se emitió el certificado. El primer comando borra el almacén de claves existente para que la importación parta de un archivo limpio; haga antes una copia de seguridad si el suyo le importa. No se trata del almacén SAML, que es un archivo aparte designado por users.auth.saml.keystore.

    rm /etc/drovio-server/keystore.jks
    
    openssl pkcs12 -export -in drovioserver.crt -inkey drovioserver.key \
      -certfile ca.crt -out pkcs2.p12 -name your_hostname -password pass:eUv4ffT4
    
    keytool -importkeystore -deststorepass eUv4ffT4 -destkeypass eUv4ffT4 \
      -destkeystore /etc/drovio-server/keystore.jks \
      -srckeystore pkcs2.p12 -srcstoretype PKCS12 -srcstorepass eUv4ffT4 \
      -alias your_hostname
    

    Elimine C:\ProgramData\Drovio\Drovio Server\keystore.jks, después:

    openssl pkcs12 -export -in drovioserver.crt -inkey drovioserver.key ^
      -certfile ca.crt -out pkcs2.p12 -name your_hostname -password pass:eUv4ffT4
    
    keytool -importkeystore -deststorepass eUv4ffT4 -destkeypass eUv4ffT4 ^
      -destkeystore "C:\ProgramData\Drovio\Drovio Server\keystore.jks" ^
      -srckeystore pkcs2.p12 -srcstoretype PKCS12 -srcstorepass eUv4ffT4 ^
      -alias your_hostname
    

    Herramientas en Windows

    • Descargue los binarios de OpenSSL, por ejemplo desde https://indy.fulgan.com/SSL/.
    • El comando keytool se encuentra en la carpeta bin del JRE de Java, ya instalado en C:\Program Files\Java\ junto con Drovio Server.
  3. Modifique los campos siguientes en el archivo de configuración, o directamente desde el panel de administración, en la sección http:

    "tls": true,
    "keystore": "/etc/drovio-server/keystore.jks",
    "keystore_password": "eUv4ffT4",
    "https_port": 443
    

    Indicar https_port tiene su importancia: activar solo TLS deja al servidor escuchando en su puerto predeterminado, 8090.

    La contraseña del almacén se guarda en claro

    settings.conf contiene ahora un secreto. Asegúrese de que el archivo solo sea legible por la cuenta que ejecuta Drovio Server.

  4. Reinicie el servicio Drovio Server. A diferencia de la mayor parte de la configuración, todo lo que define el escuchador HTTP se lee una sola vez al arrancar, por lo que aquí hace falta un reinicio. Consulte Iniciar y detener el servicio para su plataforma.

  5. Compruebe el resultado desde otra máquina:

    openssl s_client -connect your_hostname:443 -showcerts </dev/null
    

    La salida debe mostrar su certificado y el certificado intermedio. Un intermedio ausente es el error más frecuente: algunos navegadores aceptarán aun así la conexión allí donde la aplicación Drovio la rechazará.

Renovar el certificado

El almacén contiene una copia del certificado, no una referencia a él: un certificado renovado debe, por tanto, volver a importarse. Repita el paso 2 cada vez, lo que ocurre cada 90 días con Let's Encrypt.

En Linux, envíe SIGUSR2 a Drovio Server para aplicarlo: el almacén se vuelve a leer desde el disco y el certificado se sustituye en el escuchador en curso, sin perder una sola conexión:

systemctl kill --signal=SIGUSR2 drovio-server

La línea de registro SSL certificate has been reloaded lo confirma. Un fallo se señala con SSL certificate reloading has failed, y el certificado anterior sigue en servicio.

Automatizar la renovación

La renovación se vuelve así totalmente automatizable: haga que el hook de despliegue de su cliente ACME ejecute el paso 2 y envíe después la señal. Sin reinicio y sin ventana de mantenimiento.

Windows

Las señales no se gestionan en Windows. Aplicar allí un certificado renovado obliga a reiniciar el servicio.

Protocolos y suites de cifrado

TLS 1.2 y TLS 1.3 están activados de forma predeterminada. Para restringirlos, o para fijar una lista de suites de cifrado, utilice http.tls_protocols y http.tls_cipher_suites.