Red Hat Training

A Red Hat training course is available for RHEL 8

1.10. Exportación de una clave privada y de certificados de una base de datos NSS para utilizarlos en una configuración de servidor web Apache

RHEL 8 ya no proporciona el módulo mod_nss para el servidor web Apache y Red Hat recomienda utilizar el módulo mod_ssl. Si almacena su clave privada y sus certificados en una base de datos de Servicios de Seguridad de Red (NSS), por ejemplo, porque migró el servidor web de RHEL 7 a RHEL 8, siga este procedimiento para extraer la clave y los certificados en formato de Correo de Privacidad Mejorado (PEM). A continuación, puede utilizar los archivos en la configuración de mod_ssl como se describe en Sección 1.6, “Configuración del cifrado TLS en un servidor HTTP Apache”.

Este procedimiento asume que la base de datos NSS está almacenada en /etc/httpd/alias/ y que usted almacena la clave privada y los certificados exportados en el directorio /etc/pki/tls/.

Requisitos previos

  • La clave privada, el certificado y el certificado de la autoridad de certificación (CA) se almacenan en una base de datos del NSS.

Procedimiento

  1. Enumerar los certificados en la base de datos del NSS:

    # certutil -d /etc/httpd/alias/ -L
    Certificate Nickname           Trust Attributes
                                   SSL,S/MIME,JAR/XPI
    
    Example CA                     C,,
    Example Server Certificate     u,u,u

    En los próximos pasos necesitará los nombres de los certificados.

  2. Para extraer la clave privada, debe exportar temporalmente la clave a un archivo PKCS #12:

    1. Utilice el apodo del certificado asociado a la clave privada, para exportar la clave a un archivo PKCS #12:

      # pk12util -o /etc/pki/tls/private/export.p12 -d /etc/httpd/alias/ -n "Example Server Certificate"
      Enter password for PKCS12 file: password
      Re-enter password: password
      pk12util: PKCS12 EXPORT SUCCESSFUL

      Tenga en cuenta que debe establecer una contraseña en el archivo PKCS #12. Necesitará esta contraseña en el siguiente paso.

    2. Exporte la clave privada del archivo PKCS #12:

      # openssl pkcs12 -in /etc/pki/tls/private/export.p12 -out /etc/pki/tls/private/server.key -nocerts -nodes
      Enter Import Password: password
      MAC verified OK
    3. Eliminar el archivo temporal PKCS #12:

      # rm /etc/pki/tls/private/export.p12
  3. Establezca los permisos en /etc/pki/tls/private/server.key para garantizar que sólo el usuario root pueda acceder a este archivo:

    # chown root:root /etc/pki/tls/private/server.key
    # chmod 0600 /etc/pki/tls/private/server.key
  4. Utilice el apodo del certificado del servidor en la base de datos del NSS para exportar el certificado de la CA:

    # certutil -d /etc/httpd/alias/ -L -n "Example Server Certificate" -a -o /etc/pki/tls/certs/server.crt
  5. Establezca los permisos en /etc/pki/tls/certs/server.crt para garantizar que sólo el usuario root pueda acceder a este archivo:

    # chown root:root /etc/pki/tls/certs/server.crt
    # chmod 0600 /etc/pki/tls/certs/server.crt
  6. Utilice el apodo del certificado CA en la base de datos NSS para exportar el certificado CA:

    # certutil -d /etc/httpd/alias/ -L -n "Example CA" -a -o /etc/pki/tls/certs/ca.crt
  7. Siga Sección 1.6, “Configuración del cifrado TLS en un servidor HTTP Apache” para configurar el servidor web Apache, y:

    • Ajuste el parámetro SSLCertificateKeyFile a /etc/pki/tls/private/server.key.
    • Ajuste el parámetro SSLCertificateFile a /etc/pki/tls/certs/server.crt.
    • Ajuste el parámetro SSLCACertificateFile a /etc/pki/tls/certs/ca.crt.

Recursos adicionales

  • La página de manual certutil(1)
  • La página de manual pk12util(1)
  • La página de manual pkcs12(1ssl)