Pesquisa de site

Como criar certificados e chaves SSL autoassinados para Apache no RHEL/CentOS 7.0


SSL (Secure Sockets Layer) é um protocolo criptográfico que permite o fluxo seguro de dados entre um servidor e seus clientes usando chaves simétricas/assimétricas usando um certificado digital assinado por uma Autoridade de Certificação (CA).

Requisitos

  1. Instalação básica do LAMP no RHEL/CentOS 7.0

Este tutorial fornece uma abordagem sobre como configurar o protocolo criptográfico de comunicação Secure Sockets Layer (SSL) no Apache Web Server instalado no Red Hat Enterprise Linux/CentOS 7.0< e gere certificados e chaves autoassinados com a ajuda de um script bash que simplifica muito todo o processo.

Etapa 1: instalar e configurar o Apache SSL

1. Para ativar SSL no servidor HTTP Apache, use o seguinte comando para instalar o módulo SSL e o kit de ferramentas OpenSSL que é necessário para suporte SSL/TLS.

yum install mod_ssl openssl

2. Após a instalação do módulo SSL, reinicie o daemon HTTPD e adicione uma nova regra de Firewall para garantir que a porta SSL – 443 – esteja aberta para conexões externas em sua máquina no estado de escuta.

systemctl restart httpd
firewall-cmd --add-service=https   ## On-fly rule

firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. Para testar a conexão SSL, abra um navegador remoto e navegue até o endereço IP do seu servidor usando o protocolo HTTPS em https://server_IP.

Etapa 2: criar certificados e chaves SSL

4. A comunicação SSL anterior entre o servidor e o cliente foi feita usando um certificado e uma chave padrão gerados automaticamente na instalação. Para gerar novas chaves privadas e pares de certificados autoassinados, crie o seguinte script bash em um caminho de sistema executável (` PATH).

Para este tutorial o caminho /usr/local/bin/ foi escolhido, certifique-se de que o script tenha o bit executável definido e, em seguida, use-o como um comando para criar novos pares SSL em /etc/ httpd/ssl/ como local padrão de certificados e chaves.

nano /usr/local/bin/apache_ssl

Use o seguinte conteúdo de arquivo.

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

5. Agora torne este script executável e execute-o para gerar um novo par de Certificado e Chave para seu Host Virtual Apache SSL.

Preencha-o com suas informações e preste atenção ao valor do Nome Comum para corresponder ao FQDN do seu servidor ou, no caso de Hospedagem Virtual, para corresponder ao endereço da Web que você acessará ao se conectar a um site seguro.

chmod +x /usr/local/bin/apache_ssl
apache_ssl

6. Depois que o Certificado e a Chave forem gerados, o script apresentará uma longa lista de todos os seus pares Apache SSL armazenados no local /etc/httpd/ssl/.

7. Outra abordagem para gerar certificados e chaves SSL é instalar o pacote crypto-utils em seu sistema e gerar pares usando o comando genkey, que pode impõe alguns problemas especialmente quando usado em uma tela de terminal Putty.

Portanto, sugiro usar este método apenas quando estiver conectado diretamente a um monitor de tela.

yum install crypto-utils
genkey your_FQDN

8. Para adicionar o novo certificado e chave ao seu site SSL, abra o arquivo de configuração do seu site e substitua as instruções SSLCertificateFile e SSLCertificateKeyFile pelos novos pares. localização e nomes de acordo.

9. Se o Certificado não for emitido por uma CA – Autoridade Certificadora confiável ou o nome do host do certificado não corresponder ao nome do host que estabelece a conexão, um erro deverá aparecer no seu navegador e você deverá aceitar manualmente o certificado.

É isso! Agora você pode usar o apache_sslcomo uma linha de comando no RHEL/CentOS 7.0 para gerar quantos pares de certificados e chaves autoassinados você precisar, e todos serão mantidos em /etc/httpd/ caminho ssl/ com o arquivo de chave protegido com 700 permissões.