Guía de Comandos SSL

Guía práctica de comandos SSL/TLS para tu VPS, orientada a lo más útil: comprobar certificados, generar claves y revisar conexiones seguras.

🔑 Generar claves y certificados

  • Crear una clave privada RSA de 2048 bitsbashopenssl genrsa -out claveprivada.key 2048
  • Crear una CSR (Certificate Signing Request) para pedir un certificado a una CA:bashopenssl req -new -key claveprivada.key -out solicitud.csr
  • Generar un certificado autofirmado (válido para pruebas)bashopenssl req -x509 -new -nodes -key claveprivada.key -sha256 -days 365 -out certificado.crt

🔍 Inspección de certificados

  • Ver información de un certificadobashopenssl x509 -in certificado.crt -text -noout
  • Comprobar fecha de caducidadbashopenssl x509 -enddate -noout -in certificado.crt
  • Ver huella digital (fingerprint)bashopenssl x509 -fingerprint -noout -in certificado.crt

🌐 Comprobación de conexiones SSL/TLS

  • Probar conexión a un servidor HTTPSbashopenssl s_client -connect ejemplo.com:443
  • Ver solo el certificado del servidorbashopenssl s_client -connect ejemplo.com:443 -servername ejemplo.com </dev/null 2>/dev/null | openssl x509 -text

🛠️ Utilidades rápidas

  • Convertir un certificado de formato DER a PEMbashopenssl x509 -inform der -in certificado.der -out certificado.pem
  • Unir clave y certificado en un solo archivo (útil para Nginx/Apache)bashcat claveprivada.key certificado.crt > fullchain.pem

Conclusión

Con estos comandos básicos puedes:

  • Generar tus propios certificados para pruebas.
  • Revisar fechas de caducidad y detalles de certificados instalados.
  • Comprobar conexiones SSL/TLS de tus sitios desde el VPS.

GUÍA PARA RENOVAR CERTIFICADOS SSL

Guía práctica para renovar certificados SSL con Let’s Encrypt usando Certbot en tu VPS

🔧 Instalación de Certbot

En la mayoría de distribuciones Linux:

bash

sudo apt update
sudo apt install certbot python3-certbot-apache   # si usas Apache
sudo apt install certbot python3-certbot-nginx    # si usas Nginx

📜 Obtener un certificado nuevo

Ejemplo con Apache:

bash

sudo certbot --apache -d midominio.com -d www.midominio.com

Ejemplo con Nginx:

bash

sudo certbot --nginx -d midominio.com -d www.midominio.com

👉 Esto configura automáticamente el servidor web y activa HTTPS.

🔄 Renovación automática

Certbot instala un cron job que renueva certificados antes de caducar. Puedes probar la renovación manual con:

bash

sudo certbot renew --dry-run

📂 Ubicación de archivos

  • Clave privada: /etc/letsencrypt/live/midominio.com/privkey.pem
  • Certificado: /etc/letsencrypt/live/midominio.com/fullchain.pem

Estos son los que se usan en la configuración de Apache/Nginx.

Consejos extra

  • Caducidad: los certificados Let’s Encrypt duran 90 días, pero se renuevan solos si el cron está activo.
  • Firewall: asegúrate de que el puerto 80 (HTTP) y 443 (HTTPS) estén abiertos para que Certbot pueda validar el dominio.
  • Logs: revisa /var/log/letsencrypt/ si alguna renovación falla.

🎯 Con esto ya tienes un flujo completo: instalar Certbot, emitir certificados, renovarlos automáticamente y mantener tu VPS seguro con HTTPS actualizado.

Guía de configuración mínima en Apache y Nginx

Para usar los certificados de Let’s Encrypt que genera Certbot en tu VPS:

⚙️ Apache (con Certbot)

Cuando instalas con --apache, Certbot suele configurar todo automáticamente. Pero si quieres hacerlo manualmente, el bloque mínimo sería:

apache

<VirtualHost *:80>
    ServerName midominio.com
    ServerAlias www.midominio.com
    Redirect permanent / https://midominio.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName midominio.com
    ServerAlias www.midominio.com

    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/midominio.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/midominio.com/privkey.pem

    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

⚙️ Nginx (con Certbot)

Igual que en Apache, Certbot puede configurarlo solo con --nginx, pero el bloque manual sería:

nginx

server {
    listen 80;
    server_name midominio.com www.midominio.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name midominio.com www.midominio.com;

    root /var/www/html;

    ssl_certificate /etc/letsencrypt/live/midominio.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/midominio.com/privkey.pem;

    location / {
        index index.php index.html;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
}

🔑 Puntos clave

  • Los archivos de Certbot siempre están en /etc/letsencrypt/live/midominio.com/.
  • Usa fullchain.pem (certificado + cadena completa) y privkey.pem (clave privada).
  • Redirige todo el tráfico HTTP (puerto 80) a HTTPS (puerto 443).
  • Tras modificar la configuración, recuerda reiniciar el servicio:
    • Apache → sudo systemctl reload apache2
    • Nginx → sudo systemctl reload nginx

🎯 Con esto ya tienes la configuración mínima para que tu VPS sirva WordPress con HTTPS seguro y renovado automáticamente por Certbot.

Información del Certificado SSL

guía de comandos útiles para comprobar la caducidad y estado de tus certificados SSL directamente desde tu VPS:

🔍 Ver información completa del certificado

bash

openssl x509 -in /etc/letsencrypt/live/midominio.com/fullchain.pem -text -noout

👉 Muestra todos los detalles: fechas de inicio y caducidad, emisor, huella digital, etc.

📅 Ver solo la fecha de caducidad

bash

openssl x509 -enddate -noout -in /etc/letsencrypt/live/midominio.com/fullchain.pem

👉 Te devuelve algo como:

Código

notAfter=Feb 14 12:00:00 2026 GMT

🌐 Comprobar el certificado de un sitio remoto

bash

echo | openssl s_client -connect midominio.com:443 -servername midominio.com 2>/dev/null | openssl x509 -noout -dates

👉 Esto consulta directamente el servidor y te muestra las fechas de validez del certificado que está sirviendo.

🛠️ Renovación manual de prueba con Certbot

bash

sudo certbot renew --dry-run

👉 Simula la renovación para verificar que el cron automático funciona correctamente.

🎯 Conclusión

Con estos comandos puedes:

  • Revisar certificados instalados en tu VPS.
  • Comprobar fechas de caducidad sin depender de plugins.
  • Validar que Certbot está renovando automáticamente.

Así mantienes control total sobre la seguridad SSL de tus sitios WordPress en tu VPS. 🚀

Guías proporcionadas por Copilot

Visitas:14