Procedimentos para o uso de SSL para o apache prover HTTPs em servidores CentOS
Instalação do Apache
yum install httpd && systemctl start httpd
Inicie automaticamente durante o boot
systemctl enable httpd.service
Checar o sistema apenas para garantir que ele está atualizado.
yum -y update
Garanta que você tem o repositório EPEL ativado
yum -y install epel-release
Logo após vem a instalação do yum-utils
yum -y install yum-utils
mod_ssl
yum -y install mod_ssl
Firewall
firewall-cmd --add-service=http --permanent && firewall-cmd --reload
Crie uma pasta raíz de documentos para o website.
mkdir /var/www/html/site
echo "It works" > /var/www/html/site/index.html
Neste passo, é necessário um arquivo de configuração de host virtual.
cat << EOF > /etc/httpd/conf.d/vhosts.conf
<VirtualHost *:80>
ServerName srvWebSite
Redirect permanent / https://teste.site.sp.gov.br/
</VirtualHost>
<VirtualHost _default_:443>
ServerName teste.site.sp.gov.br
ServerAlias site.sp.gov.br
ServerAdmin suporte@joserodriguesfilho.com
DocumentRoot /var/www/html/site
</VirtualHost>
EOF
Para adicionar a diretiva ServerName
no arquivo /etc/httpd/conf/httpd.conf
, utilizando o comando sed
e capturando o hostname da máquina, você pode seguir os seguintes passos:
hostname=$(hostname)
sudo sed -i '95iServerName '${hostname} /etc/httpd/conf/httpd.conf
Copie o certificado para as pastas abaixo:
cp site.sp.gov.br.crt /etc/pki/tls/certs/
cp site.sp.gov.br.key /etc/pki/tls/private/
Alterar o arquivo “ssl.conf“
sed -i 's|SSLCertificateKeyFile /etc/pki/tls/private/localhost.key|SSLCertificateKeyFile /etc/pki/tls/private/site.sp.gov.br.key|' /etc/httpd/conf.d/ssl.conf
sed -i 's|SSLCertificateFile /etc/pki/tls/certs/localhost.crt|SSLCertificateFile /etc/pki/tls/certs/site.sp.gov.br.crt|' /etc/httpd/conf.d/ssl.conf
Depois de adicionar o conteúdo ao arquivo, lembre-se de verificar a configuração e reiniciar o Apache para aplicar as alterações:
*O apachectl configtest
é usado para verificar se há erros de sintaxe na configuração antes de reiniciar o serviço.
apachectl configtest && systemctl restart httpd
ATENÇÃO
Enter SSL pass phrase for srvWebSite:443 (RSA) :
Para não receber a mensagem acima quando reiniciarmos o Apache, faremos o seguinte:
cd /etc/pki/tls/private/ && openssl rsa -in site.sp.gov.br.key -out site.sp.gov.br.key.pass
mv site.sp.gov.br.key site.sp.gov.br.key.bkp
mv site.sp.gov.br.key.pass site.sp.gov.br.key
Por fim, reinicie o Apache
systemctl restart httpd
Acesse o seu site:
https://teste.site.sp.gov.br
Aqui está um resumo da configuração:
- Primeiro Bloco VirtualHost (Porta 80):
- Este bloco lida com o tráfego HTTP na porta 80.
ServerName
: Especifica o nome de domínio do site (por exemplo,seusite.seudominio.com
).Redirect permanent / https://seusite.seudominio.com/
: Esta linha é uma diretiva para redirecionar todo o tráfego HTTP para a versão HTTPS do site, garantindo uma conexão segura.
- Segundo Bloco VirtualHost (default:443):
- Este bloco lida com o tráfego HTTPS na porta 443.
ServerName
: Novamente, especifica o nome de domínio principal do site.ServerAlias
: Permite que o servidor responda a outros nomes de host (por exemplo,seusite
).ServerAdmin
: O endereço de e-mail que deve ser associado a questões relacionadas ao servidor.DocumentRoot
: Este é o diretório onde os arquivos reais do site estão armazenados, neste caso, localizados em/var/www/html/seusite.seudominio.com
.