[KB7857] Configurar una conexión HTTPS/SSL para ESET PROTECT On-Prem (Linux)

NOTA:

Esta página ha sido traducida por un ordenador. Haga clic en Inglés bajo Idiomas en esta página para mostrar el texto original. Si encuentra algo que no está claro, por favor, póngase en contacto con su soporte local.

Problema

Solución

Solución relacionada: Usuarios de Windows

Usuarios del dispositivo virtual Rocky Linux

Si es usuario de Rocky Linux Virtual Appliance, ajuste el número de puerto del conector a 443.

Más información sobre Agente de gestión de ESET con certificado de Rocky Linux ESET PROTECT Virtual Appliance.

HTTPS

Por motivos de seguridad, te recomendamos que configures ESET PROTECT On-Prem para que utilice HTTPS.

Utilizar un certificado existente

El mensaje de error «¡Se está utilizando una conexión sin cifrar! Configura el servidor web para que utilice HTTPS» puede aparecer al acceder a ESET PROTECT On-Prem a través de HTTP. Esto ocurre tras la instalación de ESET PROTECT On-Prem.

Los pasos que se indican a continuación se refieren a los certificados para Apache Tomcat, que se utilizan para garantizar conexiones HTTPS seguras. Más información sobre los certificados de ESET PROTECT On-Prem.

  1. Mueva el archivo de certificado (por ejemplo, certificate_file.pfx) a la carpeta de instalación de Apache Tomcat (por ejemplo, /etc/tomcat/).

  2. Abra el archivo Server.xml ubicado en la carpeta de instalación de Apache Tomcat y edítelo de la siguiente manera:

    • Apache Tomcat 9

      • Si no hay ningún elemento <‎Connector después de <‎Service name="Catalina">, copie la siguiente cadena y péguela después de <‎Service name="Catalina">.

        Utilice sus propios valores para keystoreFile, keystorePass y keystoreType:

        <Connector port="8443"
                       protocol="HTTP/1.1"
                       SSLEnabled="true"
                       maxThreads="150"
                       scheme="https"
                       secure="true"
                       clientAuth="false"
                       sslEnabledProtocols="TLSv1.2,TLSv1.3"
                       ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
                                TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
                                TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
                                TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
                                TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
                                TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
                                TLS_RSA_WITH_AES_128_CBC_SHA256,
                                TLS_RSA_WITH_AES_128_GCM_SHA256,
                                TLS_RSA_WITH_AES_128_CBC_SHA,
                                TLS_RSA_WITH_AES_256_CBC_SHA256,
                                TLS_RSA_WITH_AES_256_GCM_SHA384,
                                TLS_RSA_WITH_AES_256_CBC_SHA"
                       keystoreFile="/etc/tomcat/certificate_file.pfx"
                       keystorePass="Secret_Password_123"
                       keystoreType="PKCS12"
                       />
      • Si aparece <‎Connector después de <‎Service name="Catalina">, utiliza tus propios valores para los parámetros que se indican a continuación.

        • keystoreFile: indica la ruta completa al archivo de certificado (.pfx, .keystore u otro). Si utiliza un certificado que no sea JKS (por ejemplo, un archivo .pfx ), elimine el keyAlias (que aparece por defecto en Server.xml ) y añada el keystoreType adecuado.
        • keystorePass: introduce la frase de contraseña del certificado.
        • keystoreType: especifica el tipo de certificado.
    • Apache Tomcat 10

      Edita la etiqueta <Connector de la siguiente manera:

      Utiliza tus propios valores para los parámetros que se indican a continuación.

      • certificateKeystoreFile:indica la ruta completa al archivo del certificado.
      • certificateKeystorePassword: introduce la contraseña del certificado.

      <Connector port="443"
                     protocol="org.apache.coyote.http11.Http11NioProtocol"
                     maxThreads="150"
                     SSLEnabled="true">
                     <SSLHostConfig>
                      <Certificate certificateKeystoreFile=""/etc/tomcat/certificate_file.pfx"
                          certificateKeystorePassword="admin.1234"
                           type="RSA"/>
                     </SSLHostConfig>
                  </Connector>
  3. Reinicia el servicio Tomcat:

    sudo systemctl restart tomcat
    • Si utilizas un archivo .keystore, utiliza la ruta al archivo (keystoreFile="/etc/tomcat/tomcat.keystore") y define keyAlias (keyAlias="tomcat") en lugar de keystoreType.

    • Si desea desactivar HTTP:

      <!--
          <Connector port="8080" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
      SELinux activado

      Los usuarios que tengan SELinux activado y reciban un aviso de certificado no válido pueden necesitar ejecutar el comando `restorecon` para restaurar el contexto de seguridad de SELinux:

      restorecon /etc/tomcat/my_cert_file.pfx
      
      ls -lZ
      
      -rw-r--r--. root root unconfined_u:object_r:etc_t:s0   /etc/tomcat/my_cert_file.pfx

Crea un nuevo certificado y haz que lo firmen

Utilice una conexión HTTPS/SSL segura para ESET PROTECT On-Prem.

  1. Crea un almacén de claves con un certificado SSL. Debes tener Java instalado .

    Apache Tomcat requiere Java:
    • Comprueba que Java, ESET PROTECT On-Prem y Apache Tomcat tengan el mismo número de bits.

    • Si tiene varias versiones de Java instaladas en su sistema, le recomendamos que desinstale las versiones anteriores y conserve únicamente la última versión de Java.

    • Las actualizaciones públicas de Oracle Java SE para uso empresarial, comercial o de producción requieren una licencia comercial. Si no adquieres una licencia de Java SE, puedes utilizar esta guía para pasar a una alternativa gratuita.

    Java incluye la herramienta keytool, que te permite crear un certificado mediante la línea de comandos.

    1. Debe generar un nuevo certificado para cada instancia de Tomcat (si dispone de varias instancias de Tomcat) para garantizar que, si un certificado se ve comprometido, las demás instancias de Tomcat sigan estando seguras. A continuación se muestra un comando de ejemplo para crear un almacén de claves con un certificado SSL.

    2. Accede a la ubicación exacta del archivo keytool, por ejemplo, /usr/lib/jvm/«java version»/jre/bin (el directorio depende del sistema operativo y de la versión de Java) y ejecuta el comando:

      sudo keytool -genkeypair -alias "tomcat" -keyalg RSA -keysize 4096 -validity 3650 -keystore "/etc/tomcat/tomcat.keystore" -storepass "tu contraseña" -keypass «tu contraseña» -dname «CN=Desconocido, OU=Desconocido, O=Desconocido, L=Desconocido, ST=Desconocido, C=Desconocido»

      La ruta del archivo /etc/tomcat/tomcat.keystore es solo un ejemplo; elige tu propia ubicación, que sea segura y accesible.

      Parámetros -storepass y -keypass

      Los valores de -storepass y -keypass deben ser los mismos.

  2. Exporta el certificado desde el almacén de claves. A continuación se muestra un comando de ejemplo para exportar la solicitud de firma de certificado desde el almacén de claves:

    sudo keytool -certreq -alias tomcat -file "/etc/tomcat/tomcat.csr" -keystore "/etc/tomcat/tomcat.keystore" -ext san=dns:ESETPROTECT
    Sustituya los valores según corresponda
    • Sustituya el valor «/etc/tomcat/tomcat.csr» del parámetro -file por la ruta y el nombre de archivo reales donde desee exportar el certificado.

    • Sustituya el valor ESETPROTECT del parámetro -ext por el nombre de host real del servidor en el que se ejecuta su Apache Tomcat con ESET PROTECT On-Prem.

  3. Obtenga el certificado SSL firmado por la autoridad de certificación raíz (CA) de su elección.

    Puede pasar al paso 6 si tiene previsto importar una CA raíz más adelante. Si decide seguir este procedimiento, es posible que su navegador web muestre advertencias sobre un certificado autofirmado y tendrá que añadir una excepción para conectarse a ESET PROTECT On-Prem a través de HTTPS.

  4. Importe el certificado raíz y el certificado intermedio de su CA a su almacén de claves. Estos certificados suelen ser facilitados por la entidad que firmó su certificado. Esto es necesario porque la respuesta del certificado se valida utilizando certificados de confianza del almacén de claves.

    sudo keytool -import -alias root -file "/etc/Tomcat/root.crt" -keystore "/etc/tomcat/tomcat.keystore"
    sudo keytool -import -alias intermediate -file "/etc/Tomcat/intermediate.crt.pem" -keystore "/etc/tomcat/tomcat.keystore"
  5. Cuando recibas el certificado firmado con la CA raíz, importa la clave pública de la CA y el certificado (tomcat.cer) a tu almacén de claves. A continuación se muestra un comando de ejemplo que importa un certificado firmado al almacén de claves:

    sudo keytool -import -alias tomcat -file "/etc/tomcat/tomcat.cer" -keystore "/etc/tomcat/tomcat.keystore"
    Sustituya los valores según corresponda

    Sustituya el valor /etc/tomcat/tomcat.csr del parámetro -file por la ruta y el nombre de archivo reales del certificado firmado.

    Si desea utilizar un certificado ya existente (por ejemplo, un certificado de empresa), siga estas instrucciones.

  6. Edita el archivo de configuración server.xml para que la etiqueta <‎Connector quede escrita de forma similar al ejemplo siguiente:

    <Connector server="OtherWebServer" port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/tomcat/tomcat.keystore" keystorePass="tu-contraseña"/>

    Esta modificación también desactiva las funciones no seguras de Tomcat, dejando habilitado únicamente el protocolo HTTPS (parámetro«scheme=» ). Por motivos de seguridad, es posible que también tengas que editar el archivo «tomcat-users.xml» para eliminar todos los usuarios de Tomcat y modificar el archivo «ServerInfo.properties» para ocultar la identidad de Tomcat.

  7. Reinicia el servicio Apache Tomcat. ESET PROTECT On-Prem puede utilizar el nombre de servicio «tomcat9».

    sudo systemctl restart tomcat
    La conexión segura sigue fallando en Linux

    Aquí va el contenido importante.

    Es posible que aparezca el siguiente mensaje de error en el directorio /var/....../tomcat: «No se ha podido inicializar el punto final asociado con ProtocolHandler ["http-bio-443"]».

    Si el problema persiste, cambia el puerto en el archivo server.xml por un valor superior a 1024, ya que es posible que los usuarios que no sean root no puedan acceder a los puertos inferiores a 1024. Si, por alguna razón, tienes que utilizar el puerto 443, puedes cambiar el valor y, a continuación, redirigir el puerto.

    Sigue los pasos que se indican a continuación para habilitar la redirección de puertos (por ejemplo, del puerto 443 al puerto 8443):

    1. Permitir el acceso remoto a la consola web:

      sudo iptables -A INPUT -p tcp -m tcp --dport 8443 -j ACCEPT

      Como alternativa, puedes abrir y editar el archivo de configuración del cortafuegos (nano /etc/sysconfig/iptables) y añadir esta línea a la sección que comienza por *nat y termina por COMMIT:

      -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports |8443)
    2. Elimina el puerto 8080 para desactivar HTTP:

      sudo iptables -D INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
    3. Guarda las reglas del cortafuegos:

      iptables-save > /etc/network/iptables.rules
    4. Desactiva SELinux. Las instrucciones proporcionadas pueden variar en función de tu distribución de Linux.