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 pode não ter 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, além disso, algumas aplicações necessitam obrigatória estar navegando de forma certificada, como paginas de pagamentos com cartão. 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 na pasta padrão C:\xampp.

Configurando o certificado SSH local

Primeiro precisamos criar um arquivo de configuração que vamos chamar de domains.ext no diretório C:/xampp/apache. Esse arquivo tem o seguinte conteúdo que você poderá copiar e colar:

C:/xampp/apache/domains.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
DNS.2 = www.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.

Localize agora o arquivo makecert.bat e acrescentar -sha256 -extfile domains.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 365 -sha256 -extfile domains.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 vermelho.

2. Criar o certificado

Agora vamos execitar o makecert.bat. Temos duas formas de fazer isso. A primeira e clicar em cima desse arquivo para ele executar ou fazer isso usando um terminal no modo texto como o cmd e executar digitando makecert.bat e “enter” que criará o os arquivos do certificado e os deixará no lugar certo.

cmd-makecert

Depois aparecerá na tela várias perguntas, que precisará responder e a seguir tem um exemplo ou informação sobre a a sequencia de perguntas e acrescentei em destaque as respostas ou o que deve ser colocado como resposta.

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) []:localhost
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.

24 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. bom dia,
    Não deu certo e agora o campp não carrega, vários tutorias de ouro usuarios tambem nao deu certo, cansei do xampp

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

  3. 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!

  4. 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.

  5. 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 é?

    1. Sim, este cenário é para localhost apenas. E nunca fiz um certificado para máquina local com um certificado de terceiros.

  6. 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.

  7. 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.

Os comentários estão fechados.