Criando e ativando um certificado SSL para o localhost no Apache no Linux Debian

Publicado em: 31/01/2025 - Autor: Mestre da Info

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.

Siga-me

Pesquisar