208.2 - Comandos clave: Apache HTTPS

Comandos OpenSSL para certificados

ComandoDescripción
openssl genrsa -out clave.key 2048Genera una clave privada RSA de 2048 bits
openssl req -new -key clave.key -out cert.csrGenera un CSR a partir de una clave existente
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout clave.key -out cert.crtGenera clave y certificado autofirmado
openssl x509 -in cert.crt -text -nooutMuestra la información del certificado
openssl req -in cert.csr -text -nooutMuestra la información del CSR
openssl rsa -in clave.key -checkVerifica la integridad de la clave privada
openssl s_client -connect host:443Prueba la conexión SSL/TLS al servidor
openssl s_client -connect host:443 -servername hostPrueba conexión SSL con SNI

Comandos Certbot (Let’s Encrypt)

ComandoDescripción
certbot --apache -d dominio.comObtiene certificado y configura Apache automáticamente
certbot certonly --webroot -w /var/www/html -d dominio.comObtiene certificado sin modificar configuración
certbot certonly --standalone -d dominio.comObtiene certificado usando servidor temporal (puerto 80)
certbot renewRenueva todos los certificados próximos a expirar
certbot renew --dry-runSimula la renovación sin aplicar cambios
certbot certificatesLista todos los certificados gestionados
certbot revoke --cert-path /ruta/cert.pemRevoca un certificado
certbot delete --cert-name dominio.comElimina un certificado del sistema

Directivas SSL principales de Apache

DirectivaEjemploDescripción
SSLEngineonActiva SSL/TLS en el VirtualHost
SSLCertificateFile/etc/ssl/certs/cert.crtRuta al certificado del servidor
SSLCertificateKeyFile/etc/ssl/private/clave.keyRuta a la clave privada
SSLCACertificateFile/etc/ssl/certs/ca.crtCertificado de la CA (cadena de confianza)
SSLProtocolall -SSLv3 -TLSv1 -TLSv1.1Protocolos SSL/TLS permitidos
SSLCipherSuiteHIGH:!aNULL:!MD5Cipher suites permitidos
SSLHonorCipherOrderonEl servidor elige el cipher preferido
SSLVerifyClientrequireExige certificado del cliente (mTLS)
SSLVerifyDepth2Profundidad de verificación de cadena de CAs
SSLUseStaplingonActiva OCSP Stapling
SSLStaplingCacheshmcb:/tmp/cache(128000)Cache para respuestas OCSP

Archivos de certificados Let’s Encrypt

ArchivoDescripción
/etc/letsencrypt/live/dominio/cert.pemCertificado del servidor
/etc/letsencrypt/live/dominio/privkey.pemClave privada
/etc/letsencrypt/live/dominio/chain.pemCertificados intermedios de la CA
/etc/letsencrypt/live/dominio/fullchain.pemCertificado completo (cert + chain)

Cabecera HSTS

DirectivaDescripción
Header always set Strict-Transport-Security "max-age=63072000"HSTS básico (2 años)
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"HSTS incluyendo subdominios
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"HSTS con precarga en navegadores