
Criando e ativando um certificado SSL para o localhost no Apache no Linux Debian
Nesse tutorial vou mostrar o passo a passo de como ativar o certificado SSL no servidor local com Apache2 no Linux Debian.
Para usar o protocolo https em seus subdomínios localhost você deve criar um certificado SSL para cada um.
Iremos utilizar os seguintes recursos
- Apache2
- OpenSSL
Nesse tutorial vou chamar meu subdomínio de meusite.localhost, você deve substituir o meusite pelo nome do seu subdomínio.
Primeiramente vamos criar o nosso certificado SSL, para isso utilizaremos o OpenSSL no modo usuário (não precisa de acesso root nesse passo).
Abra o terminal e digite os comandos abaixo:
mkdir meusite
cd meusite
openssl req -x509 -nodes -new -sha256 -days 1024 -newkey rsa:2048 -keyout meusite.server.key -out meusite.server.pem -subj "/C=BR/CN=MeuSite-Localhost-Root-CA"
openssl x509 -outform pem -in meusite.server.pem -out meusite.server.crt
echo "authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = meusite.localhost
DNS.2 = www.meusite.localhost" > meusite.domains.ext
openssl req -new -nodes -newkey rsa:2048 -keyout meusite.localhost.key -out meusite.localhost.csr -subj "/C=BR/ST=SP/L=Sao Paulo/O=MeuSite-Localhost-Certificates/CN=meusite.localhost.local"
openssl x509 -req -sha256 -days 1024 -in meusite.localhost.csr -CA meusite.server.pem -CAkey meusite.server.key -CAcreateserial -extfile meusite.domains.ext -out meusite.localhost.crt
Agora com o certificado gerado vamos copiar os arquivos meusite.localhost.key e meu site.localhost.crt para a pasta /etc/apache2/ssl/
Para que isso seja possível, vamos precisar criar a pasta ssl dentro da pasta apache2. Nesse passo será necessário ter acesso a conta root.
Digite os seguintes comandos no terminal:
sudo mkdir /etc/apache2/ssl/
sudo cp meusite.localhost.crt /etc/apache2/ssl/
sudo cp meusite.localhost.key /etc/apache2/ssl/
Agora vamos precisar ativar o módulo SSL no Apache2, para isso vamos usar o seguinte comando:
sudo a2enmod ssl
Pronto! Agora com o módulo SSL ativo, podemos configurar o nosso subdomínio no sites-available.
Para configurar é só abrir o arquivo de configuração do seu subdomínio com o editor nano.
sudo nano /etc/apache2/sites-available/meusite-localhost.conf
O seu arquivo deve ficar assim:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName meusite.localhost
ServerAlias www.meusite.localhost
DocumentRoot /home/usuario/meusite
<Directory /home/usuario/meusite>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName meusite.localhost
ServerAlias www.meusite.localhost
DocumentRoot /home/usuario/meusite
<Directory /home/usuario/meusite>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/meusite.localhost.crt
SSLCertificateKeyFile /etc/apache2/ssl/meusite.localhost.key
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Pronto! Com tudo configurado, agora é só reiniciar o servidor Apache com o comando:
sudo systemctl restart apache2
Para que o certificado SSL seja reconhecido no navegador de Internet é necessário importar o arquivo "meusite.server.pem" no Gerenciador de Autoridades do seu navegador de Internet. No Chromium e Google Chrome esse gerenciador fica em Configurações > Privacidade e Segurança > Segurança > Gerenciar Certificados > Autoridades.
Agora é só acessar o seu subdomínio localhost com ou sem https no seu navegador de Internet.