Solicitar certificado Wildcart para un dominio

Para crear un dominio del tipo wildcard, es decir del tipo *.midominio.es, necesitamos tener acceso a la configuración DNS de nuestro dominio para poder crear un registro del tipo txt en el mismo.

Para solicitar un certificado en el entorno de pruebas de Let' s Encrypt ejecutamos: <sxh>certbot certonly –manual –preferred-challenges=dns –email admin@midominio.es –server https://acme-v02.api.letsencrypt.org/directory –agree-tos -d *.midominio.es</sxh>

Necesitas usar tu correo y tu dominio. En este caso además estoy usando el entorno de producción acme-v02.api.letsencrypt.org . Cambialo si vas a hacer pruebas
Para hacer pruebas cambia la URL del servidor por acme-staging-v02.api.letsencrypt.org <sxh>certbot certonly –manual –preferred-challenges=dns –email admin@midominio.es –server https://acme-staging-v02.api.letsencrypt.org/directory –agree-tos -d *.midominio.es</sxh>

Al ejecturar el comando, en la consola te pedirá que crees un registro del tipo TXT en tu DNS con el valor que te muestra, en mi caso me indica que cree <sxh>_acme-challenge.midominio.es with the following value:ukU9H9rPQVbC37nG0p35QzA7CQf7FmMD7QQnC3APm9w</sxh>

En strato sólo poner como prefijo _acme-challenge, sin el nombre de dominio

Configurar el certificado en nginx

Ficheros

Fichero /etc/nginx/sites-available/midominio_es <sxh> server {

listen 80;
listen [::]:80;
root /var/www/midominio_es;
index index.php index.html index.htm;
server_name midominio.es www.midominio.es;
location ~ /\.well-known/acme-challenge/ {
allow all;
}
location / {
return 301 https://$host$request_uri;
}

} server {

listen 443 ssl http2;
root /var/www/midominio_es;
index index.php index.html index.htm;
server_name midominio.es www.midominio.es;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SH>
ssl_prefer_server_ciphers On;

ssl_certificate /etc/letsencrypt/live/midominio.es/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/midominio.es/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/midominio.es/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=31557600; includeSubDomains";

} </sxh>

Index.html

creamos el fichero /var/www/midominio_es/index.html con el siguiente contenido <sxh html> <html> <head></head> <body>

<h1>Esta es mi pagina index.html</h1>
<p>Hola MUNDO</p>

</body> </html> </sxh> Creamos en/etc/nginx/sites-enable un enlace al fichero que hemos creado en sites_available <sxh bash>ln -s /etc/nginx/sites-available/midominio_es /etc/nginx/sites-enabled/</sxh>

Referencias

https://www.jesusamieiro.com/generar-un-certificado-ssl-wildcard-con-lets-encrypt/