Como configurar o SSL no Xampp

ssl no xampp

Podemos executar projetos em PHP, WordPress  outro CMSs em localhost com certificado SSL utilizando o  XAMPP e o navegador Google Chrome no Windows, como resultado podemos deixar configuradas todas as urls de links e imagens para depois colocarmos o site online sem precisar edita-las posteriormente.
Então mãos a obra.

1 – Configurando o Apache

No arquivo C:\xampp\apache\conf\httpd.conf certifique-se que o módulo LoadModule ssl_module modules/mod_ssl.so não esteja comentado. Se estiver tire o #.

No meu caso instalei o Xampp no drive “C:\”, lembre-se de mudar o “C:” para a letra do seu drive se você instalou o XAMPP em outro.

Agora crie o arquivo chamado v3.ext e cole os comando abaixo:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
DNS.2 = www.seudominio.com.br

Salve o arquivo v3.ext na pasta C:\xampp\apache.

2 – Gerando o Certificado

No pasta C:\xampp\apache edit o arquivo makecert.bat e altere a linha de comando abaixo:

bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365

Por esta:

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

E salve o arquivo.

Execute o Prompt de Comando (cmd)  do Windows  Administrador e rode o comando:

markcert

Você vai digitar uma senha duas vezes lembre-se dela porque você vai precisar novamente abaixo:

Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

Agora você só tem que preencher dois campos e o resto fica em branco mesmo:

Country Name: BR
State or Province Name: [EM BRANCO]
Locality Name: [EM BRANCO]
Organization Name: [EM BRANCO]
Organizational Unit Name: [EM BRANCO]
Common Name: www.seudominio.com.br
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.

Enter pass phrase for privkey.pem:

Pronto, o certificado já foi gerado.

3 – Instalando o Certificado

Em C:\xampp\apache\conf crie uma pasta chamada “Certificados” e dentro desta pasta crie outra pasta chamada “www.seudominio.com.br” e copie o arquivo de cada pasta abaixo para a pasta “Certificados/www.seudominio.com.br”:

C:\xampp\apache\conf\ssl.crt
C:\xampp\apache\conf\ssl.csr
C:\xampp\apache\conf\ssl.key

Agora precisamos adiciona-lo aos Gerenciador de Certificados no Windows  que é o software que faz o gerenciamento dos certificados neste SO. Para acessar este software digite o comando 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 o comando e depois clique em OK.

No Gerenciador de Certificados clique em Autoridades de Certificação Raiz Confiáveis, perceba 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.

Nesse momento abrirá  um assistente de importação de certificados. Deixe marcado o Usuário Atual clique em Avançar.

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

Deixe marcado a opção “Colocar o certificado no repositório a seguir” e na caixa deverá estar escrito “Autoridades de Certificação Raiz Confiáveis”. Senão estiver escrito clique em Procurar para colocar o repositório correto. Agora clique novamente em Avançar e na próxima tela clique em Concluir.

Um aviso de segurança  poderá ser mostrado. Clique em Sim. E por fim clique em OK.

Pronto, o certificado SSL para o seu www.seudominio.com.br já está configurado.

4 – Abrindo o www.seudominio.com.br localmente

Abra o Bloco de Notas como Administrador clique em Arquivo / Abrir. Procure pelo arquivo hosts na pasta C:\Windows\System32\drivers\etc. Inclua essas duas linhas abaixo no início do arquivo e salve. Senão estiver visualizando o arquivo embaixo na janela mude de “Documentos de Texto” para “Todos os arquivos”.

127.0.0.1 seudominio.com.br
127.0.0.1 www.seudominio.com.br

Agora vá para a pasta C:\xampp\apache\conf\extra abra o arquivo httpd-vhosts.conf e coloque no final dele as linhas abaixo apontando os certificados para a pasta do seu domínio virtual (ex: seudominio.com.br)

<VirtualHost *:80>
ServerName seudominio.com.br
ServerAlias www.seudominio.com.br
DocumentRoot "C:/xampp/htdocs/seudominio"
<Directory "C:/xampp/htdocs/seudominio">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
#Require local
Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:443>
ServerName seudominio.com.br
ServerAlias www.seudominio.com.br
DocumentRoot "C:/xampp/htdocs/seudominio"
<Directory "C:/xampp/htdocs/seudominio">
Options +Indexes +Includes +FollowSymLinks +MultiViews
Require all granted 
</Directory>
SSLEngine on
SSLCertificateFile "E:/xampp/apache/certificados/www.seudominio.com.br/server.crt"
SSLCertificateKeyFile "E:/xampp/apache/certificados/www.seudominio.com.br/server.key"
SSLCertificateChainFile "E:/xampp/apache/certificados/www.seudominio.com.br/server.crt" 
</VirtualHost>

Salve o Arquivo e Reinicie o Apache e pronto.

Agora é só carregar o www.seudominio.com.br no navegador.

Lembrando que depois que você colocar seu site online vá no arquivo hosts em C:\Windows\System32\drivers\etc que você modificou antes e comente as linhas que você adicionou conforme está abaixo:

#127.0.0.1 seudominio.com.br
#127.0.0.1 www.seudominio.com.br