Certificado SSL em Localhost utilizando Xampp e Google Chrome 58

Certificado SSL em Localhost utilizando Xampp e Google Chrome 58

Saiba como executar seus projetos PHP em localhost com certificado SSL utilizando o automatizador XAMPP e o navegador Google Chrome no sistema operacional Windows.

Olá desenvolvedor(a), ter um certificado SSL em um ambiente de desenvolvimento local, é um requisito para a realização de testes em algumas API's de intermediação de pagamento, como por exemplo o Pagseguro. A configuração do ambiente utilizando o Xampp e o Google Chrome era realativamente simples, com meia dúzia de comandos no Prompt você já estava com seu localhost respondendo à partir da requisição https. O problema é que à partir da versão 58 do Chrome os processos anteriores deixaram de funcionar, o que deixou muita gente de cabelo em pé.

Isso acontece porque, à partir da versão 58, o Chrome passa a não reconhecer certificados SSL assinados à partir do CN (Common Name), e reconhecer apenas certificados assinados à partir do SAN (Subject Alternative Name).

Depois de muita pesquisa, em foruns e sites especializados, encontrei uma forma bem simples de se instalar o certificado. Por enquanto testei apenas no Windows, porém em breve vou testar também no Linux! Então vamos lá.

O primeiro passo é baixar e instalar o Xampp, e você pode fazer o download acessando a página deles Clicando Aqui. Esse tutorial foi escrito utilizando a versão 7.1.10, que inclui a mesma versão do PHP. Após a instalação, verifique se tudo está funcionando bem, acessando o localhost após iniciar o Apache.

Certificado SSL em Localhost utiliando Xampp e Google Chrome 58

O Módulo Apache precisa estar verde, conforme a imagem. Agora você precisará criar um arquivo chamado v3.ext dentro da pasta apache no diretório onde você instalou o Xampp (se você não alterou o caminho de instalação, deverá criar esse arquivo dentro de c:\xampp\apache\). Coloque as seguintes linhas no arquivo:

copy
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
 
[alt_names]
DNS.1 = localhost

Certificado SSL em Localhost utiliando Xampp e Google Chrome 58

Dentro dessa mesma pasta existe um arquivo chamado makecert.bat. Você precisará edita-lo. Troque as informações contidas na linha 9 desse arquivo pela seguinte:

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

Salve e feche o arquivo.

Depois de termos preparado o Apache para ler e reconhecer o certificado. Vamos gera-lo. Para isso utilizaremos o Prompt de Comando. Abra o prompt e navegue até a pasta do apache.

copy
cd C:\xampp\apache

Agora gere o certificado digitando:

copy
makecert

Será solicitado uma senha e depois sua confirmação. Você pode colocar qualquer senha que quiser, porém não coloque nada ao acaso, pois você ainda precisará dela para concluir a geração do certificado. A seguir serão solicitadas outras informações, as quais você pode preencher apenas o Country Name com BR. Os demais dados podem ser deixados em branco, até o Organizational Unit Name. No Common Name coloque localhost.

Country Name: BR
State or Province Name: [EM BRANCO]
Locality Name: [EM BRANCO]
Organization Name: [EM BRANCO]
Organizational Unit Name: [EM BRANCO]
Common Name: localhost
Email Address: [EM BRANCO]
A challenge Password: [EM BRANCO]
An Optional Company Name: [EM BRANCO]

 

Agora será pedida a senha que você criou lá em cima. Se por acaso você esqueceu, terá que começar outra vez esse processo. Pronto, o certificado já foi gerado. Agora precisamos adiciona-lo aos certificados confiáveis no Windows e faremos isso com o programa certmgr.msc, que é o software que faz o gerenciamento dos certificados neste SO. Para acessar este software digite certmgr.msc na barrra de busca do windows (se você está no Windows 10) e clique sobre o programa, ou abra a janela Executar (Tecla do Windows + R), digite certmgr.msc e depois clique em OK.

No Gerenciador de Certificados clique em Autoridades de Certificação Raiz Confiáveis, percebe que na parte direita da janela teremos uma aba com o título Tipo de Objeto. Clique com o botão direito do mouse em Certificados, selecione Todas as tarefas, e depois clique em Importar.

Certificado SSL em Localhost utiliando Xampp e Google Chrome 58

Se abrirá agora um assistente de importação de certificados. Siga os passos a seguir para importar o certificado que acabamos de criar:

Certificado SSL em Localhost utiliando Xampp e Google Chrome 58

Clique em Avançar.

Certificado SSL em Localhost utiliando Xampp e Google Chrome 58

Na próxima tela, você deverá buscar o local do certificado. Clique em Procurar e selecione o arquvo server.crt no caminho C:\xampp\apache\conf\ssl.crt. Clique em Abrir e depois clique em Avançar.

Certificado SSL em Localhost utiliando Xampp e Google Chrome 58

Deixe marcado a opção padrão, conforme imagem acima, e clique novamente em avançar. Você verá a tela abaixo e pode clicar em Concluir.

Certificado SSL em Localhost utiliando Xampp e Google Chrome 58

Confirme também o Aviso de Segurança que será mostrado, clicando em Sim. E por fim clique em OK. Pronto, o certificado SSL para o seu localhost já está configurado. Primerio reinicie os serviços do seu Xampp e depois faça um teste acessando https://localhost. Se algo deu errado, nos conte nos comentários para que eu ou os leitores do Profissão Web possam te ajudar.

Então é isso, por hoje é só. Se você tiver alguma dificuldade, ou alguma sugestão para facilitar ainda mais esse processo, não deixe de compartilhar conosco no campo de comentários, logo aqui abaixo! Continue ligado no nosso blog pois sempre temos uma boa novidade para você! Um grande abraço e até a próxima!

Gostou desse artigo? Veja mais em Desenvolvimento