Diferencias
Muestra las diferencias entre dos versiones de la página.
f1:certificado_ssl [2025/08/27 14:21] – creado lmachuca | f1:certificado_ssl [2025/08/27 15:05] (actual) – lmachuca | ||
---|---|---|---|
Línea 27: | Línea 27: | ||
git clone https:// | git clone https:// | ||
</ | </ | ||
+ | |||
+ | Para configurar el servidor web correspondiente (Apache o Nginx) se recomienda seguir las recomendaciones oficiales. En particular, para **Certbot** se recomienda crear un depósito de certificados bajo el árbol de directorios del servicio web (ej.: ''/ | ||
+ | |||
+ | Tomar nota que los repositorios de '' | ||
===== Case 1: Subdominio directo ===== | ===== Case 1: Subdominio directo ===== | ||
Línea 37: | Línea 41: | ||
* Los puertos 80 y 443 del servidor '' | * Los puertos 80 y 443 del servidor '' | ||
+ | ==== httpd ==== | ||
+ | |||
+ | El servicio web debe tener habilitado un archivo de configuración de acme-challenge, | ||
+ | |||
+ | * Apache: ''/ | ||
+ | * Nginx: ''/ | ||
+ | |||
+ | ==== VirtualHost ==== | ||
+ | |||
+ | Se asume que el VirtualHost tiene una estructura similar a la siguiente en un archivo de virtualhost: | ||
+ | |||
+ | Apache - '' | ||
+ | |||
+ | < | ||
+ | < | ||
+ | ServerName miproyecto.helpcom.cl | ||
+ | UseCanonicalName Off | ||
+ | |||
+ | ErrorLog ${APACHE_LOG_DIR}/ | ||
+ | # debería estar cubierto por acme-challenge.conf | ||
+ | # Alias / | ||
+ | |||
+ | # alojamiento directo... | ||
+ | # DocumentRoot / | ||
+ | # ...o proxeado | ||
+ | ProxyPreserveHost On | ||
+ | # etc... | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Nginx - '' | ||
+ | |||
+ | |||
+ | ==== Certbot ==== | ||
+ | |||
+ | Con Certbot, asumiendo que la configuración esté correcta, basta con invocar Certbot y el programa mismo ofrecerá la opción de modificar el archivo de VirtualHost correspondiente en vivo: | ||
+ | |||
+ | <code bash> | ||
+ | # Apache | ||
+ | certbot certonly --apache -d miproyecto.helpcom.cl | ||
+ | # Nginx | ||
+ | certbot certonly --nginx -d miproyecto.helpcom.cl | ||
+ | </ | ||
+ | |||
+ | Si todo sale correctamente, | ||
+ | |||
+ | ==== acme.sh ==== | ||
+ | |||
+ | Con acme.sh, asumiendo que la configuración está correcta, basta con invocar acme.sh pasándole específicamnte la ruta de certificados del servicio que queremos (si no se ha configurado el programa para eso) y habilitando el modo Stateless. | ||
+ | |||
+ | <code bash> | ||
+ | acme.sh --issue -d miproyecto.helpcom.cl --stateless | ||
+ | </ | ||
+ | |||
+ | :!: Notar que la opción '' | ||
+ | |||
+ | Si todo sale correctamente, | ||
+ | |||
+ | <code bash> | ||
+ | # configurar como corresponda: | ||
+ | export CERTP=/ | ||
+ | export CERTD=miproyecto.helpcom.cl | ||
+ | acme.sh --install-cert -d " | ||
+ | --cert-file " | ||
+ | --key-file " | ||
+ | --fullchain-file " | ||
+ | |||
+ | </ | ||
+ | |||
+ | Una vez que los certificados estén copiados deben coincidir con las rutas en el archivo generado. Si no se configuró acme.sh para generar el archivo, o la configuración no corresponde, | ||
+ | |||
+ | ==== Reiniciar httpd ==== | ||
+ | |||
+ | Una vez que esté todo verificado, recargamos la configuración del servidor web: | ||
+ | |||
+ | <code bash> | ||
+ | # Apache | ||
+ | service apache2 reload | ||
+ | # Nginx | ||
+ | service nginx reload | ||
+ | </ | ||
+ | |||
+ | ==== HTTPS-only ==== | ||
+ | |||
+ | Si se desea, una vez que el certificado está probado, forzar el sitio a usar HTTPS, se debe modificar la configuración del sitio de ese VirtualHost del puerto 80 para redirigir al puerto 443. | ||
+ | |||
+ | Para esto modificamos el fragmento del VirtualHost en el archivo de sitio HTTP (no HTTPS) por ejemplo '' | ||
+ | |||
+ | **Apache**: | ||
+ | |||
+ | <code conf> | ||
+ | < | ||
+ | ServerName miproyecto.helpcom.cl | ||
+ | UseCanonicalName Off | ||
+ | Redirect / https:// | ||
+ | |||
+ | # quitar DocumentRoot y directivas ProxyPass, | ||
+ | # pero NO quitar otras directivas de configuración | ||
+ | ... | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Nginx**: | ||
+ | |||
+ | TBA | ||
===== Caso 2: Subdominio proxeado por Helpcom ===== | ===== Caso 2: Subdominio proxeado por Helpcom ===== | ||
Línea 50: | Línea 160: | ||
(TBA) | (TBA) | ||
+ | |||
+ | ===== VirtualHost-443 ===== | ||
+ | |||
+ | Acá se presenta un ejemplo de archivo de VirtualHost resultante, el cual puede ser usado como plantilla para configurar el acceso a los certificados manualmente si por alguna razón Certbot o acme.sh no pueden generar el archivo correctamente: | ||
+ | |||
+ | Ejemplo 1: Apache + Certbot | ||
+ | |||
+ | <file apache2/ | ||
+ | < | ||
+ | ServerName miproyecto.helpcom.cl | ||
+ | ... | ||
+ | Include / | ||
+ | SSLCertificateFile | ||
+ | SSLCertificateKeyFile | ||
+ | |||
+ | ... | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Ejemplo 2: Nginx + acme.sh | ||
+ | |||
+ | <file nginx/ | ||
+ | server { | ||
+ | listen 80; | ||
+ | listen [::]:80; | ||
+ | listen 443 ssl; | ||
+ | listen [::]:443 ssl; | ||
+ | server_name miproyecto.helpcom.cl; | ||
+ | |||
+ | include include.d/ | ||
+ | |||
+ | ssl_certificate | ||
+ | ssl_certificate_key | ||
+ | ssl_trusted_certificate / | ||
+ | |||
+ | ssl_stapling on | ||
+ | |||
+ | ... | ||
+ | } | ||
+ | |||
+ | </ | ||
{{tag>f1 hosting servicios}} | {{tag>f1 hosting servicios}} | ||