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 no final da linha com o seguinte conteúdo:domains.ext 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.

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.

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

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.

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


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
É 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.
passando para agradecer, deu certinho o procedimento, muito obrigado.
Valeu Vitor Matos, fico feliz em ajudar. Obrigado por deixar um feedback;
Excelente! O único que funcionou. Muito obrigado!
Obrigado por me dar retorno.
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
Obrigado por comentar! Vou ver se mudou alguma coisa em novas atulizações e quando possivel, se necessário alterar o artigo.
Depois que fiz o primeiro procedimento, antes de reinicializar o apache, tentei reiniciar e agora ele não inicia mais.
Error: Apache shutdown unexpectedly.
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!
Muito obrigado pela ajuda. Ficou perfeito.
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?
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.
Gratidão! Esse post ajudou bastante, funcionou perfeitamente.
Valeu pelo retorno!
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 é?
Sim, este cenário é para localhost apenas. E nunca fiz um certificado para máquina local com um certificado de terceiros.
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?
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.
Showw! Funcionou mesmo
Passando apenas para agradecer, deu certinho!!! Parabéns pelo conteúdo!!
Obrigado pelo retorno
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.
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.