Eis como usar o Let’s Encrypt no Slackware!
==========================================
DEHYDRATED – configuração
==========================================
# Local dos ficheiros de configuração
/etc/dehydrated/
# Configuração base – não alterar
/etc/dehydrated/config
# Indicar quais os domínios em SSL. Alias na mesma linha. Domínios diferentes em linhas separadas.
/etc/dehydrated/domains.txt
Exemplo:
dominio.pt www.dominio.pt
exemplo.pt
==========================================
WELLKNOWN
==========================================
######## ATENÇÃO ########
#
# a configuração seguinte tem que ser feita em http, mas pode ser redirecionada para https
# Criar um ficheiro com o nome abaixo, e colocar lá uma linha vazia
vi /var/www/dehydrated/m4g1C-t0k3n
# No ficheiro /etc/httpd/httpd.conf colocar as linhas abaixo, na zona das parametrização de diretorias
# Colocar também no /etc/httpd/extra/httpd-ssl.conf
# e eventualmente nos VHosts todos: /etc/httpd/extra/httpd-vhosts.conf
#
# Configuracao para o dehydrated
# ver: https://github.com/dehydrated-io/dehydrated/blob/master/docs/wellknown.md
Alias /.well-known/acme-challenge /var/www/dehydrated
<Directory /var/www/dehydrated>
Options None
AllowOverride None
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Directory>
# Fim do dehydrated
#
# Reiniciar o apache
apachectl restart
# Neste momento, o endereço seguinte tem que existir e mostrar uma página em branco:
http://DOMINIO/.well-known/acme-challenge/m4g1C-t0k3n
==========================================
Criar os certificados
==========================================
# É necessário aceitar os termos de utilização, uma única vez:
dehydrated –register –accept-terms
# Depois, criar os certificados
dehydrated -c
==========================================
Redirecionar http para https
==========================================
# Os redirecionamentos de http para https, por cada domínio https, têm que ser feitos da forma seguinte, para manter o URL no redirecionamento:
# Isto é para colocar nos VHosts de http (/etc/httpd/extra/httpd-vhosts.conf)
######## ATENÇÃO ########
# Isto só pode ser feito depois de criar os certificados, por causa do acesso ao ficheiro “m4g1C-t0k3n” em http
# As linhas seguintes foram retiradas de:
# “Redirect from http to https in apache showing original url with arguments”
# https://stackoverflow.com/questions/27824676/redirect-from-http-to-https-in-apache-showing-original-url-with-arguments
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
==========================================
Configurar o Apache
==========================================
SSLCertificateFile “/etc/dehydrated/certs/DOMINIO/cert.pem”
SSLCertificateKeyFile “/etc/dehydrated/certs/DOMINIO/privkey.pem”
SSLCertificateChainFile “/etc/dehydrated/certs/DOMINIO/chain.pem”
# Reiniciar o apache
apachectl restart
==========================================
Renovação dos certificados
==========================================
Devia ser automático, mas ainda não sei como fazer isso.
Quando os certificados expiram, ou uns dias antes de expirarem, na maior parte das vezes, basta executar os comandos seguintes:
dehydrated -c
apachectl restart
Se der o erro seguinte, é necessário executar os passos abaixo.
ERROR: Challenge is invalid! (returned: invalid) (result: [“type”] “http-01”
Os passos são:
– No ficheiro /etc/httpd/extra/httpd-vhosts.conf, criar a variável seguro: Define seguro true e no final do ficheiro, eliminá-la: UnDefine seguro
– Envolver as linhas do RewriteEngine com um If:
<If "'${seguro}' == 'true'">
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
</If>
Temporariamente, fazer Define seguro false, reiniciar o Apache e correr o comando
dehydrated -c
Depois, voltar a colocar Define seguro true, e reiniciar o Apache.
Resumindo:
vi /etc/httpd/extra/httpd-vhosts.conf --> Define seguro false apachectl restart dehydrated -c vi /etc/httpd/extra/httpd-vhosts.conf --> Define seguro true apachectl restart