Saltar al contenido principal

Ejemplos de configuración

Esta página ofrece ejemplos completos de configuración para combinaciones comunes de «middleware × formato de certificado». Cada ejemplo consta de dos partes: la configuración de montaje del certificado en el lado del servicio y la configuración del punto de instalación de clmBot config.yaml.

Las rutas de los ejemplos son valores de demostración; sustitúyalas por las rutas de su entorno real. Para conocer el significado de los campos, consulte la referencia de configuración.

nginx + PEM

Configuración del certificado en el lado del servicio

En la configuración del sitio de nginx, monte el certificado mediante ssl_certificate y ssl_certificate_key:

server {
listen 443 ssl;
server_name example.com;

ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;

location / {
root /usr/share/nginx/html;
}
}
Información

nginx requiere que el archivo ssl_certificate contenga la cadena de certificados completa (certificado del sitio + certificado intermedio). Por lo tanto, se recomienda dejar ca_path vacío en el punto de instalación de clmBot, y clmBot fusionará la cadena de certificados completa y la escribirá en cert_path.

Configuración del punto de instalación de clmBot

servers:
- id: nginx_pem
sub_code: <证书订阅号>
format:
pem:
cert_path: /etc/nginx/ssl/example.com.crt
ca_path: ""
key_path: /etc/nginx/ssl/example.com.key
after_script: |
nginx -t && nginx -s reload

Apache + PEM

Configuración del certificado en el lado del servidor

En la configuración del sitio Apache, monte el certificado mediante directivas como SSLCertificateFile:

<VirtualHost *:443>
ServerName example.com

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/example.com.crt
SSLCertificateKeyFile /etc/httpd/ssl/example.com.key
SSLCertificateChainFile /etc/httpd/ssl/example.com.ca.crt
</VirtualHost>
Información
  • En Apache 2.4.8 y versiones superiores, también se puede combinar la cadena de certificados directamente en el archivo SSLCertificateFile. En este caso, SSLCertificateChainFile se puede omitir, y el campo ca_path en el punto de instalación de clmBot se deja vacío.
  • El nombre del servicio se selecciona según la distribución: en RHEL/CentOS es httpd, y en Debian/Ubuntu es apache2.

Configuración del punto de instalación de clmBot

servers:
- id: apache_pem
sub_code: <证书订阅号>
format:
pem:
cert_path: /etc/httpd/ssl/example.com.crt
ca_path: /etc/httpd/ssl/example.com.ca.crt
key_path: /etc/httpd/ssl/example.com.key
after_script: |
apachectl configtest && systemctl restart httpd.service

Tomcat + JKS

Configuración del certificado en el lado del servidor

Tomcat 8.5 y versiones superiores montan el almacén de claves JKS mediante SSLHostConfig en conf/server.xml:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/opt/tomcat/conf/example.com.jks"
certificateKeystorePassword="<keystore密码>"
certificateKeyAlias="tomcat"
certificateKeyPassword="<私钥密码>"
type="RSA" />
</SSLHostConfig>
</Connector>

Configuración del punto de instalación de clmBot

servers:
- id: tomcat_jks
sub_code: <证书订阅号>
format:
jks:
path: /opt/tomcat/conf/example.com.jks
alias: tomcat
key_pass: <私钥密码>
store_pass: <keystore密码>
after_script: |
export JAVA_HOME=/usr/java
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh
Información

Si Tomcat está administrado por systemd, after_script se puede simplificar a systemctl restart <tomcat 服务名>.

Tomcat + PEM

Configuración del certificado en el lado del servidor

Tomcat 8.5 y versiones posteriores admiten el uso directo de archivos PEM, sin necesidad de convertirlos a JKS:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeyFile="/opt/tomcat/ssl/example.com.key"
certificateFile="/opt/tomcat/ssl/example.com.crt"
certificateChainFile="/opt/tomcat/ssl/example.com.ca.crt"
type="RSA" />
</SSLHostConfig>
</Connector>

Configuración del punto de instalación de clmBot

servers:
- id: tomcat_pem
sub_code: <证书订阅号>
format:
pem:
cert_path: /opt/tomcat/ssl/example.com.crt
ca_path: /opt/tomcat/ssl/example.com.ca.crt
key_path: /opt/tomcat/ssl/example.com.key
after_script: |
export JAVA_HOME=/usr/java
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh

Servicio personalizado + PFX

Apto para servicios que utilizan certificados en formato de paquete de certificado de archivo único (PKCS#12), after_script admite el uso de variables de plantilla de script:

servers:
- id: app_pfx
sub_code: <证书订阅号>
format:
pfx:
path: /opt/app/ssl/example.com.pfx
key_pass: <PFX密码>
after_script: |
echo "certificate updated at {{ .DATETIME }}"
/usr/bin/systemctl restart example-app.service

Verificación

Una vez completada la configuración, puede activar manualmente una actualización para verificar todo el flujo:

./clm-bot-linux-amd64 update-certificate

Una vez confirmado que el archivo del certificado se ha actualizado, que el servicio se ha recargado y que el nuevo certificado está en vigor, configure la actualización automática según el método de actualización del certificado.