De vegades, pots necessitar afegir el certificat SSL a tots els subdominis alhora, sense haver de fer-ho individualment. Per a això serveixen els certificats wildcard.
El procés és força senzill i és similar a obtenir certificats de Let's Encrypt amb Certbot, però amb algunes diferències en la configuració i un registre DNS addicional.
Instal·lació
Comença actualitzant el servidor:
# apt update -y && apt upgrade -yComprova que certbot estigui instal·lat:
# apt install certbot -yAfegir el certificat SSL wildcard:
Per afegir el certificat SSL, hauràs d'utilitzar l'ordre següent, substituint l'adreça electrònica i el domini:
# certbot certonly --manual --preferred-challenges=dns --email ejemplo@ejemplo.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d testkb.com -d *.testkb.comA continuació, apareixerà un missatge com aquest, que indica que has d'afegir els registres DNS TXT amb el subdomini _acme-challenge.dominio.com i el codi com a valor del registre TXT:
En el cas dels servidors de noms de Clouding, quedaria així:
Un cop ho hagis fet, prem Retorn. Apareixerà un advertiment que indica que el registre pot trigar una mica a actualitzar-se i se't facilitarà un enllaç de Toolbox amb el qual podràs comprovar-ho directament:
Finalment, ja tindràs el certificat wildcard creat:
Un cop fet això, només et quedarà configurar manualment els certificats /etc/letsencrypt/live/dominio.com/fullchain.pem i /etc/letsencrypt/live/dominio.com/privkey.pem al servidor web que utilitzis.
A més, el podràs exportar per utilitzar-lo en altres servidors que allotgin subdominis del mateix domini (no es renovarà automàticament).
Configurar els certificats al servidor web
Configuració dels certificats:
En aquest cas, hauràs de configurar manualment els fitxers de Nginx per afegir-hi la ubicació dels certificats. Has de substituir els valors següents de la configuració del protocol HTTPS (443) per aquestes ubicacions:
ssl_certificate /etc/letsencrypt/live/ejemplo.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ejemplo.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
Si ho vols, també pots afegir una redirecció del port 80 TCP (HTTP) al 443 TCP (HTTPS) a l'apartat corresponent. Exemple:
server {
if ($host = ejemplo.com) {
return 301 https://$host$request_uri;
}
listen 80 ;
listen [::]:80 ;
server_name ejemplo.com;
return 404;
}
També pots utilitzar SSL Checker o un SSL Server Test per verificar el certificat de Let's Encrypt.
Configuració dels certificats:
Exemple de fitxer de configuració d'Apache per a HTTPS:
<IfModule mod_ssl.c>
<VirtualHost *:443>
# La directiva ServerName estableix l'esquema de la petició, el nom d'amfitrió i el port que
# el servidor utilitza per identificar-se. Això s'utilitza quan es creen
# URL de redirecció. En el context dels amfitrions virtuals, ServerName
# especifica quin nom d'amfitrió ha d'aparèixer a la capçalera Host: de la petició per
# coincidir amb aquest amfitrió virtual. Per a l'amfitrió virtual per defecte (aquest fitxer), aquest
# valor no és decisiu, ja que s'utilitza com a amfitrió d'últim recurs en qualsevol cas.
# Tanmateix, cal establir-lo explícitament per a qualsevol altre amfitrió virtual.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Nivells de registre disponibles: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# També és possible configurar el nivell de registre per a determinats
# mòduls, per exemple.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Per a la majoria dels fitxers de configuració de conf-available/, que s'activen
# o es desactiven globalment, és possible
# incloure una línia per a un únic amfitrió virtual concret. Per exemple, la
# línia següent activa la configuració CGI només per a aquest amfitrió
# després que s'hagi desactivat globalment amb "a2disconf".
#Include conf-available/serve-cgi-bin.conf
ServerName ejemplo.com
SSLCertificateFile /etc/letsencrypt/live/ejemplo.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ejemplo.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Exemple de redirecció d'HTTP a HTTPS per a la configuració d'un lloc web d'Apache:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =ejemplo.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Configuració dels certificats:
Un cop fet això, indica a la configuració la ubicació dels certificats del domini en qüestió. Si tens accés a Webadmin, pots fer-ho des de l'apartat SSL de l'amfitrió virtual corresponent al domini en qüestió:
| Private Key File | /etc/letsencrypt/live/ejemplo.com/privkey.pem |
| Certificate File | /etc/letsencrypt/live/ejemplo.com/fullchain.pem |
Recorda també que has d'habilitar el Listener al port 443 si encara no està habilitat, assignar-hi el domini i marcar la connexió com a segura:
A l'apartat SSL, afegeix un certificat per configurar SSL i habilitar la compatibilitat amb els protocols necessaris, tal com es mostra a les captures de pantalla següents:
A continuació, configura el certificat a Virtual Hosts:
A més, pots activar i crear una regla de redirecció:
Regla de redirecció:
rewriteCond %{HTTPS} !on
rewriteCond %{HTTP:X-Forwarded-Proto} !https
rewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
Configuració dels certificats de LiteSpeed
Si no utilitzes CyberPanel, edita el fitxer de configuració del servei web per crear o modificar el Listener:
# vi /usr/local/lsws/conf/httpd_config.conf
Un exemple per afegir o modificar el Listener i indicar la ubicació d'un certificat amb assignacions de vhosts:
listener HTTPS {
address *:443
secure 1
keyFile /etc/letsencrypt/live/ejemplo.com/privkey.pem
certFile /etc/letsencrypt/live/ejemplo.com/fullchain.pem
certChain 1
sslProtocol 31
map ejemplo ejemplo.com
map ejemplo2 ejemplo2.com
}
A continuació, també hauràs de modificar la configuració del vhost o dels vhosts (després de crear el listener amb les assignacions corresponents):
# vi /usr/local/lsws/conf/vhosts/ejemplo.com/vhconf.conf
Un exemple de fitxer de configuració del vhost amb redirecció d'HTTP a HTTPS:
docRoot $VH_ROOT/html/
rewrite {
enable 1
autoLoadHtaccess 1
rules <<<END_rules
rewriteCond %{HTTPS} !on
rewriteCond %{HTTP:X-Forwarded-Proto} !https
rewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
END_rules
}
vhssl {
keyFile /etc/letsencrypt/live/ejemplo.com/privkey.pem
certFile /etc/letsencrypt/live/ejemplo.com/fullchain.pem
}
Recorda que, si tens consultes sobre aquesta qüestió o qualsevol altra relacionada amb els teus servidors a Clouding, pots escriure a soporte@clouding.io. Som al teu costat per a tot el que necessitis, consulta'ns!