Red Hat Training

A Red Hat training course is available for RHEL 8

1.10. Exportar uma chave privada e certificados de um banco de dados NSS para utilizá-los na configuração de um servidor web Apache

A RHEL 8 não fornece mais o módulo mod_nss para o servidor web Apache, e a Red Hat recomenda o uso do módulo mod_ssl. Se você armazenar sua chave privada e certificados em um banco de dados de Serviços de Segurança de Rede (NSS), por exemplo, porque você migrou o servidor web do RHEL 7 para o RHEL 8, siga este procedimento para extrair a chave e os certificados no formato Privacy Enhanced Mail (PEM). Você pode então utilizar os arquivos na configuração mod_ssl, conforme descrito em Seção 1.6, “Configurando a criptografia TLS em um servidor Apache HTTP”.

Este procedimento assume que o banco de dados do NSS é armazenado em /etc/httpd/alias/ e que você armazena a chave privada exportada e os certificados no diretório /etc/pki/tls/.

Pré-requisitos

  • A chave privada, o certificado e o certificado da autoridade certificadora (CA) são armazenados em um banco de dados do NSS.

Procedimento

  1. Liste os certificados no banco de dados do 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

    Você precisa dos apelidos dos certificados nas próximas etapas.

  2. Para extrair a chave privada, você deve exportar temporariamente a chave para um arquivo PKCS #12:

    1. Use o apelido do certificado associado à chave privada, para exportar a chave para um arquivo 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

      Observe que você deve definir uma senha no arquivo PKCS #12. Você precisa desta senha na próxima etapa.

    2. Exportar a chave privada do arquivo 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. Apagar o arquivo temporário PKCS #12:

      # rm /etc/pki/tls/private/export.p12
  3. Defina as permissões em /etc/pki/tls/private/server.key para garantir que somente o usuário root possa acessar este arquivo:

    # chown root:root /etc/pki/tls/private/server.key
    # chmod 0600 /etc/pki/tls/private/server.key
  4. Use o apelido do certificado do servidor no banco de dados do NSS para exportar o certificado CA:

    # certutil -d /etc/httpd/alias/ -L -n "Example Server Certificate" -a -o /etc/pki/tls/certs/server.crt
  5. Defina as permissões em /etc/pki/tls/certs/server.crt para garantir que somente o usuário root possa acessar este arquivo:

    # chown root:root /etc/pki/tls/certs/server.crt
    # chmod 0600 /etc/pki/tls/certs/server.crt
  6. Use o apelido do certificado CA no banco de dados do NSS para exportar o certificado CA:

    # certutil -d /etc/httpd/alias/ -L -n "Example CA" -a -o /etc/pki/tls/certs/ca.crt
  7. Siga Seção 1.6, “Configurando a criptografia TLS em um servidor Apache HTTP” para configurar o servidor web Apache, e:

    • Ajustar o parâmetro SSLCertificateKeyFile para /etc/pki/tls/private/server.key.
    • Ajustar o parâmetro SSLCertificateFile para /etc/pki/tls/certs/server.crt.
    • Ajustar o parâmetro SSLCACertificateFile para /etc/pki/tls/certs/ca.crt.

Recursos adicionais

  • A página do homem certutil(1)
  • A página do homem pk12util(1)
  • A página do homem pkcs12(1ssl)