Como Habilitar SSL com Renovação Automática no MK-AUTH

Como Habilitar SSL com Renovação Automática no MK-AUTH

Este tutorial detalha o processo de habilitação de SSL com renovação automática no MK-AUTH. Atenção: Siga os comandos e configurações exatamente como descrito.


Passo 1: Atualizar pacotes e instalar o Certbot

Execute os comandos abaixo para atualizar os pacotes e instalar o Certbot:

# apt update
# apt install letsencrypt python-certbot-apache

Passo 2: Gerar o certificado SSL

Substitua seu@email.com e central.provedor.abc pelos seus dados:

# letsencrypt --apache --agree-tos --email seu@email.com -d central.provedor.abc

Passo 3: Editar a configuração do Apache

Edite o arquivo de configuração do Apache com o seguinte comando:

nano /etc/apache2/sites-enabled/000-default.conf

Adicione ou ajuste o conteúdo conforme indicado abaixo:

<VirtualHost *:80>
ServerAdmin suporte@mk-auth.com.br
ServerName speedlink.provedor.co

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>

<Directory /var/www/>
<IfModule mod_apparmor.c>
AAHatName hotsite
</IfModule>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all

Header unset X-Powered-By
Header add MKAUTH "HOTSITE"
Header set MKAUTH "HOTSITE"

# Config bandwidth limitation 500Kbps
#BandwidthModule On
#Bandwidth all 504800
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel crit
CustomLog /var/log/apache2/access.log combined

ExpiresActive On
<FilesMatch "\.(gif|jpg|jpeg|png|css|txt|js|GIF|JPG|JPEG|PNG|CSS|TXT|JS)$">
ExpiresDefault "access plus 3600 seconds"
</FilesMatch>

# proxy de paginas externas
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass /pay_cartao http://gnet.mk-auth.com.br/
ProxyPassReverse /pay_cartao http://gnet.mk-auth.com.br/
</VirtualHost>

<VirtualHost *:81>
ServerAdmin suporte@mk-auth.com.br
ServerName localhost
DocumentRoot /opt/mk-auth/paginas/night/

ErrorLog /dev/null
LogLevel crit
CustomLog /dev/null combined

Alias /mkfiles /opt/mk-auth/mkfiles/
</VirtualHost>

<VirtualHost *:85>
ServerAdmin suporte@mk-auth.com.br
ServerName localhost
DocumentRoot /opt/mk-auth/paginas/corte/

ErrorLog /dev/null
LogLevel crit
CustomLog /dev/null combined

Alias /mkfiles /opt/mk-auth/mkfiles/
</VirtualHost>

<VirtualHost *:88>
ServerAdmin suporte@mk-auth.com.br
ServerName localhost
DocumentRoot /opt/mk-auth/paginas/atraso/

ErrorLog /dev/null
LogLevel crit
CustomLog /dev/null combined

Alias /mkfiles /opt/mk-auth/mkfiles/
</VirtualHost>

<VirtualHost *:89>
ServerAdmin suporte@mk-auth.com.br
ServerName localhost
DocumentRoot /opt/mk-auth/paginas/reparo/

ErrorLog /dev/null
LogLevel crit
CustomLog /dev/null combined

Alias /mkfiles /opt/mk-auth/mkfiles/
</VirtualHost>

<VirtualHost *:90>
ServerAdmin suporte@mk-auth.com.br
ServerName localhost
DocumentRoot /opt/mk-auth/paginas/aviso/

ErrorLog /dev/null
LogLevel crit
CustomLog /dev/null combined

Alias /mkfiles /opt/mk-auth/mkfiles/
</VirtualHost>

<VirtualHost *:443>
ServerAdmin suporte@mk-auth.com.br
ServerName speedlink.provedor.co

DocumentRoot /var/www/

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/speedlink.provedor.co/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/speedlink.provedor.co/privkey.pem

<Directory /var/www/>
<IfModule mod_apparmor.c>
AAHatName hotsite
</IfModule>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all

Header unset X-Powered-By
Header add MKAUTH "HOTSITE"
Header set MKAUTH "HOTSITE"

# Config bandwidth limitation 500Kbps
#BandwidthModule On
#Bandwidth all 504800
</Directory>

# Proxy de páginas externas
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass /pay_cartao http://gnet.mk-auth.com.br/
ProxyPassReverse /pay_cartao http://gnet.mk-auth.com.br/
</VirtualHost>

<VirtualHost *:445>
ServerAdmin suporte@mk-auth.com.br
ServerName localhost
DocumentRoot /opt/mk-auth/paginas/corte/

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

Alias /mkfiles /opt/mk-auth/mkfiles/
</VirtualHost>

Passo 4: Reiniciar o Apache

Após salvar o arquivo, reinicie o serviço do Apache:

apachectl restart

Passo 5: Configurar a renovação automática do SS

Abra o cron para edição:

crontab -e

Adicione a linha abaixo para renovar automaticamente o certificado:

# RENOVAR CERTIFICADO SSL
* * 25 * * /usr/bin/certbot -q renew >/dev/null 2>&1

Atualizações no MK-AUTH

Se necessário, ao atualizar o MK-AUTH, remova o certificado SSL. Para restaurar, insira novamente as linhas do certificado, do ServerAlias, e a linha Include no arquivo 000-default.conf.

Com este tutorial, o SSL será habilitado e renovado automaticamente no MK-AUTH, garantindo a segurança e o funcionamento contínuo do sistema.

Como instalar certificado SSL em localhost para XAMPP

Neste tutorial passo a passo, tentarei explicar o passo a passo para instalar certificado SSL em localhost para XAMPP no Windows 10.

As atualizações mais recentes do navegador Chrome têm se tornado um desafio para o desenvolvimento local. Não apenas desabilitaram o uso do domínio .dev para o desenvolvimento local, mas também implementaram uma configuração específica no certificado SSL para indicar que o site é seguro.

Quais vantagens de instalar certificado SSL em localhost para XAMPP

Instalar um certificado SSL em localhost para o XAMPP oferece vantagens como a capacidade de testar e desenvolver sites ou aplicativos da web com segurança, simular um ambiente de produção mais próximo e garantir a proteção de dados sensíveis durante o desenvolvimento, preparando melhor o projeto para implantações em servidores ao vivo.

Na minha instalação do XAMPP, basicamente tenho um clone para os sites que gerencio. E todos eles (é claro) usam SSL / HTTPS.

Nesta passo a passo, criaremos SSL e configuraremos o site demo.wordpress.dev.


Configurar SSL no Xampp


Primeiramente vamos verificar se o módulo ssl_module está ativo em c:\xampp\apache\conf\httpd.conf:

LoadModule ssl_module modules/mod_ssl.so

Caso tenha um # a frente, exclua e salve o arquivo.

A princípio a instalação padrão do XAMPP estar em C:\xampp\apache. Nesse sentido, crie um arquivo com o nome de v3.ext com este conteúdo:

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

Em seguida, na pasta C:\xampp\apache edite o arquivo makecert.bat e altere a linha de comando abaixo:

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

Antes de tudo, o valor 365 quer dizer um ano de validade, em outras palavras, fique a vontade para alterar os anos como desejar.

Do mesmo modo, ainda no aquivo, altere as duas linhas:

De
move /y server.crt .\conf\ssl.crt
move /y server.key .\conf\ssl.key
Para
copy /y server.crt .\conf\ssl.crt\wordpress.crt
copy /y server.key .\conf\ssl.key\wordpress.key

Por fim, execute como administrador o arquivo makecert.bat:

Além disso, vai pedir uma senha, informe uma que melhor você lembrar.

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

Todavia, vá percorrendo todas as opções, muitas das informações não são obrigatórias, segue a minha lista:

Country Name: BR
State or Province Name: [OPCIONAL]
Locality Name: [OPCIONAL]
Organization Name: [OPCIONAL]
Organizational Unit Name: [OPCIONAL]
Common Name: www.seudominio.com.br
Email Address: [OPCIONAL]
A challenge Password: [OPCIONAL]
An Optional Company Name: [OPCIONAL]

Contudo, ele irá pedir novamente a senha que você inseriu no início:

Enter pass phrase for privkey.pem:

Instalando o Certificado no Windows

Nesse sentido, vamos precisar instalar o certificado no Windows. Nossos arquivos já foram copiados de forma organizada, em C:\xampp\apache\conf\ssl.crt\ e C:\xampp\apache\conf\ssl.key\

  • Siga para a pasta C:\xampp\apache\conf\ssl.crt\ e encontre o arquivo wordpress.crt.
  • Clique com o botão direito do mouse sobre ele, e depois clique em Instalar Certificado.
  • Deixe marcada a opção Usuário Atual e clique em Avançar.
  • Na tela seguinte, marque Colocar todos certificados no repositório a seguir.
  • Clique em Procurar, selecione Autoridades de Certificação Raiz Confiáveis.
  • Por fim, clique em Concluir.

Adicionando o domínio no arquivo de hosts do Windows

No arquivo host C:\Windows\System32\drivers\etc\hosts (Para editar este arquivo é preciso permissão de administrador, portanto edite em um editor como administrador), recomendo o editor Notepad++.

Adicione a seguinte linha no arquivo hosts

127.0.0.1 demo.wordpress.dev

Nesse sentido, vamos editar nosso virtual hosts em C:\xampp\apache\conf\extra\httpd-vhosts.conf, adicionando os seguintes hosts virtuais:

Acrescente os seguintes hosts virtuais no final do arquivo:

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/wordpress"
ServerName demo.wordpress.dev
ServerAlias www.demo.wordpress.dev
ErrorLog "logs/demo-error.log"
CustomLog "logs/demo-access.log" common
</VirtualHost>

<VirtualHost *:443>
DocumentRoot "C:/xampp/htdocs/wordpress"
ServerName demo.wordpress.dev
ServerAlias www.demo.wordpress.dev
ErrorLog "logs/demo-error.log"
CustomLog "logs/demo-access.log" common

SSLEngine on
SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/wordpress.crt"
SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/wordpress.key"
</VirtualHost>

Acrescentamos um normal e outro para o ssl, apontando onde os arquivos de certificados estão.

Enfim, agora eu recomendo reiniciar a máquina. Até a próxima!