https

Adicionar certificado SSL/HTTPS no Windows com XAMPP

O certificado digital é um recurso obrigatório para todo site. No ambiente de desenvolvimento local ele não tem a mesma importância, podemos até desenvolver sem termos nenhum certificado SSL/HTTPS instalado. No entanto os navegadores estão mais seguros e ficam avisando que está havendo uma quebra de segurança quando estamos testando os sistemas que estamos desenvolvendo. Para resolver isso precisamos instalar um certificado SSH/HTTPS na nossa máquina local. Nosso ambiente de trabalho está rodando em uma máquina com Windows 10 e com o XAMPP instalado. Se esse é seu caso, continue, e mesmo se não for, pode valer a pena continuar e ver o que poderá ser útil para o seu ambiente.

Arquivo v3.ext

Primeiro precisamos conferir se temos o arquivo V3.ext no diretório C:/xampp/apache. Se não tiver você precisa criar-lo. Esse arquivo tem o seguinte conteúdo que você poderá copiar e colar:

C:/xampp/apache/v3.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost

Uma observação interessante, é que se você quer acessar esse servidor dentro de uma intranet ou precisa de adicionar mais domínios locais, você poderá adicionar abaixo de DNS.1 = localhost o novo dominio DNS.2 = novodominio.exemplo ou o ip da máquina local.

É preciso verificar o arquivo makecert.bat e acrescentar -sha256 -extfile v3.ext no final da linha com o seguinte conteúdo: bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 500.

C:/xampp/apache/vmakecert.bat
@echo off
set OPENSSL_CONF=./conf/openssl.cnf

if not exist .\conf\ssl.crt mkdir .\conf\ssl.crt
if not exist .\conf\ssl.key mkdir .\conf\ssl.key

bin\openssl req -new -out server.csr
bin\openssl rsa -in privkey.pem -out server.key
bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 500 -sha256 -extfile v3.ext

set OPENSSL_CONF=
del .rnd
del privkey.pem
del server.csr

move /y server.crt .\conf\ssl.crt
move /y server.key .\conf\ssl.key

echo.
echo -----
echo Das Zertifikat wurde erstellt.
echo The certificate was provided.
echo.
pause

O que foi adicionado está destacado em negrito.

2. Criar o certificado

Agora, precisa abrir um terminal no modo texto como o cmd e executar o makecert.bat que criará o os arquivos do certificado e os deixará no lugar certo.

cmd-makecert

Depois de digitar makecert, aparecerá na tela várias perguntas, que precisará responder.

Generating a RSA private key
……………………………………………..+++++
……………………………………………………………………………+++++
writing new private key to 'privkey.pem'
Enter PEM pass phrase:CRIAR UMA SENHA

Verifying - Enter PEM pass phrase:Redigitar a SENHA

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,

If you enter '.', the field will be left blank.

Country Name (2 letter code) [AU]:BR 
State or Province Name (full name) [Some-State]:Estado 
Locality Name (eg, city) []:Cidade 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nome 
Organizational Unit Name (eg, section) []: 
Common Name (e.g. server FQDN or YOUR name) []:Nome 
Email Address []:email@email.com 

Please enter the following 'extra' attributes 
to be sent with your certificate request 
A challenge password []: 
An optional company name []: 
Enter pass phrase for privkey.pem: Digitar novamente a SENHA
writing RSA key 
Signature ok 
subject=C = BR, ST = Parana, L = Londrina, O = WebiG, CN = localhost, emailAddress = lisanias@hotmail.com 
Getting Private key 
Não foi possível encontrar C:\xampp\apache\.rnd 
    1 arquivo(s) movido(s). 
    1 arquivo(s) movido(s). 

-----
Das Zertifikat wurde erstellt. 
The certificate was provided. 

Pressione qualquer tecla para continuar. . .

Com o certificado criado precisa reiniciar o Apache para que ele execute os novos certificados.

Instalar o certificado como confiável

Como não tem nenhuma entidade certificadora externa para abonar esse certificado que criamos, precisamos informar ao Windows e navegador que ele é sim um certificado confiável. Para isso vamos a pasta C:\xampp\apache\conf\ssl.crt e clicamos no arquivo server.crt.

instalar certificado

Clique no botão “Instalar Certificado” e avance. Selecione “Usuário Atual” e avance.

Configuração - selecionar o repositório de certificado

Selecionar “Colocar todos os certificados no repositório a seguir” e clicar em “procurar“. Na nova janela que abrir selecionar “Autoridades de Certificação Raiz Confiavel” e clicar em “Ok” e de seguida clique em “Seguinte” e finalmente em “Concluir“.

Para concluir, reinicie o Apache no Painel Administrativo do XAMPP, ou seja para e inicie ele novamente.

Se tudo deu certo, ao atualizar o https://localhost no navegador, devera estar com o cadeado acionado e a página carregada.

localhost com https

Comente se deu certo certo para você também. Se tiver uma forma melhor e mais eficiente, compartilhe nos comentários deste post.

Publicado por

Lisanias Loback

Pastor na Igreja Casa de Oração Para Todos os Povos, trabalhando na área social no NUSELON - Núcleo Social Evangélico de Londrina, uma ONG que cuida de crianças em situação de riscos. Atua na área de ensino teológico e na área de TI. É formado em Teologia pela UNIFIL e é técnico em contabilidade.

29 comentários em “Adicionar certificado SSL/HTTPS no Windows com XAMPP”

  1. Webig, cara. Eu seguitudo exatamente como explicado, mas na hora de acessar no navegador aparece mensagem de certificado inválido. Você tem ideia do que possa ser? Já refiz o processo várias vezes

    1. É dificil dizer, porque sempre tem funcionado. De vez em quando repito o processo do zero novamente, para reintalar ou autualizar a maquina, e sempre estou revendo e se necessário atualizando o artigo. Varias pessoas tem testado e funcionado também para elas… Espero que consiga, senão passa ai mais detalhes ou algum passo que não deu certo.

    2. Mano eu também estava com o mesmo problema. Depois de realizares todo procedimento, reinicia o computador e verás que vai funcionar normalmente

    1. Obrigado por comentar! Vou ver se mudou alguma coisa em novas atulizações e quando possivel, se necessário alterar o artigo.

  2. Depois que fiz o primeiro procedimento, antes de reinicializar o apache, tentei reiniciar e agora ele não inicia mais.
    Error: Apache shutdown unexpectedly.

    1. Samuel, obrigado por informar o erro. Quando tiver um tempo vou rever o procedimento e ver se mudou alguma coisa, e se for o caso atulizar o artigo!

  3. Olá Lisanias, teria algum exemplo com IP, pois fiz o passo a passo e não deu certo, usando localhost funciona, mas se coloco o IP não da certo, teria como fazer um exemplo?

    1. Oi Carlos, neste momento estou sem tempo para fazer esse exemplo (e testar com ip). Mas, assim que tiver um tempinho, vou testar e postar o exemplo. Obrigado.

  4. Você sabe como fazemos nesse cenário para configurar o ssl no xamp utilizando um certificado de uma CA e disponibilizar o acesso para internet? esse cenário que você mostrou é para localhost apenas não é?

  5. Boa noite, segui todos os paços não deu nenhum erro está funcionando 100% porém o ssl do XAMPP não ativo já reiniciei o meu computador e limpei o cache da memoria porém nada resolveu. o que será que pode está acontecendo ou existe algum outro modo que eu deva testar?

    1. Lucas, desculpa a demora em responder. Existem várias coisas que podem ser feitas ou verificadas, mas sem mais informações técnicas não consigo ajudar.

  6. Olá, o procedimento foi bem explicado, obrigado por isto. Pode me ajudar? Depois de realizar o procedimento, o navegar informa aquela MSG de “Alerta de Potencial risco pela frente”. Será que errei algo? Obrigado.

    1. Oi, obrigado pelo retorno. Quanto a mensagem que aparece pode ser normal aparecer no primeiro acesso porque é um certificado auto-assinado (não tem nenhuma empresa externa certificando – esses certificados são pagos). Se aparecer o cadeado antes do endereço é porque está tudo certo.

Nos encoraje deixando seu comentário aqui.