Série RHCE Implementando HTTPS através do TLS usando o NSS (Network Security Service) para Apache - Parte 8

Série RHCE Implementando HTTPS através do TLS usando o NSS (Network Security Service) para Apache - Parte 8

Se você é um administrador do sistema encarregado de manter e proteger um servidor da web, não pode se dar ao luxo de não dedicar seus melhores esforços para garantir que os dados atendidos ou passando pelo seu servidor sejam protegidos o tempo todo.

Série RHCE: Implementando HTTPS através do TLS usando o NSS (Network Security Service) para Apache - Parte 8

Para fornecer comunicações mais seguras entre clientes e servidores da Web, o Https Protocolo nasceu como uma combinação de Http e Ssl (Camada de soquetes seguros) ou mais recentemente, TLS (Segurança da camada de transporte).

Devido a algumas violações de segurança graves, Ssl foi depreciado em favor dos mais robustos TLS. Por esse motivo, neste artigo, explicaremos como garantir conexões entre seu servidor da web e clientes usando TLS.

Este tutorial pressupõe que você já instalou e configurou seu servidor da Web Apache. Caso contrário, consulte o artigo a seguir neste site antes de prosseguir.

  1. Instale a lâmpada (Linux, MySQL/Mariadb, Apache e PHP) no RHEL/CENTOS 7

Instalação do OpenSSL e utilitários

Primeiro, certifique -se de que Apache está funcionando e que ambos http e https são permitidos através do firewall:

# SystemCtl Iniciar http # SystemCtl Ativar http # firewall-cmd --permanent --add-service = http # firewall-cmd --permanent --ad-service = https 

Em seguida, instale os pacotes necessários:

# yum update && yum install openSsl mod_nss Crypto-utils 

Importante: Por favor, observe que você pode substituir mod_nss com mod_ssl no comando acima se você quiser usar OpenSSL bibliotecas em vez de NSS (Serviço de segurança de rede) implementar TLS (Qual deles é deixado de acordo com você, mas usaremos o NSS neste artigo, pois é mais robusto; por exemplo, ele suporta padrões recentes de criptografia, como PKCS #11).

Finalmente, desinstale mod_ssl Se você escolheu usar mod_nss, ou vice-versa.

# yum remover mod_ssl 

Configurando o NSS (serviço de segurança de rede)

Depois mod_nss está instalado, seu arquivo de configuração padrão é criado como /etc/httpd/conf.D/NSS.conf. Você deve ter certeza de que todo o Ouvir e VirtualHost Diretivas apontam para o porto 443 (porta padrão para https):

NSS.Conf - arquivo de configuração
Ouça 443 VirtualHost _Default_: 443 

Em seguida, reinicie Apache e verifique se o mod_nss Módulo foi carregado:

# apachectl reiniciar # httpd -m | Grep nss 
Verifique o módulo mod_nss carregado no apache

Em seguida, as seguintes edições devem ser feitas em /etc/httpd/conf.D/NSS.conf arquivo de configuração:

1. Indicar diretório de banco de dados NSS. Você pode usar o diretório padrão ou criar um novo. Neste tutorial, usaremos o padrão:

NSSCERtificatedAtabase/etc/httpd/alias 

2. Evite a entrada manual da senha em cada sistema, salvando a senha no diretório do banco de dados em /etc/httpd/nss-db-pas-palavra.conf:

NSSPASSSHRASEDIALOG ARQUIVO:/etc/httpd/nss-db-pas-assassword.conf 

Onde /etc/httpd/nss-db-pas-palavra.conf contém apenas a seguinte linha e minha senha é a senha que você definirá posteriormente para o banco de dados NSS:

Interno: MyPassword 

Além disso, suas permissões e propriedade devem ser definidas como 0640 e Raiz: Apache, respectivamente:

# chmod 640/etc/httpd/nss-db-pas-password.conf # chgrp apache/etc/httpd/nss-db-pas-password.conf 

3. Red Hat recomenda desativar Ssl e todas as versões de TLS antes de TLSV1.0 devido ao Poodle SSLV3 Vulnerabilidade (mais informações aqui).

Certifique -se de que todas as instâncias do NSSProtocolo A diretiva lê o seguinte (é provável que você encontre apenas um se não estiver hospedando outros hosts virtuais):

NSSPROTOCOL TLSV1.0, tlsv1.1 

4. O Apache se recusará a reiniciar, pois este é um certificado autoassinado e não reconhecerá o emissor como válido. Por esse motivo, neste caso em particular, você terá que adicionar:

NSSENFORCEVALIDCERTS OFF 

5. Embora não seja estritamente necessário, é importante definir uma senha para o banco de dados NSS:

# certutil -w -d/etc/httpd/alias 
Defina a senha para o NSS Database Pages: 1 2