Exemples de configuration
Cette page fournit des exemples de configuration complets pour les combinaisons courantes « middleware × format de certificat ». Chaque exemple comprend deux parties : la configuration de montage du certificat côté service et la configuration du point d’installation de config.yaml pour clmBot.
Les chemins dans les exemples sont des valeurs de démonstration, veuillez les remplacer par les chemins de votre environnement réel. Pour la signification des champs, voir Référence de configuration.
nginx + PEM
Configuration du certificat côté service
Dans la configuration du site nginx, montez le certificat via ssl_certificate et 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;
}
}
nginx exige que le fichier ssl_certificate contienne la chaîne de certificats complète (certificat du site + certificat intermédiaire). Il est donc recommandé de laisser ca_path vide dans le point d’installation de clmBot. clmBot fusionnera la chaîne de certificats complète et l’écrira dans cert_path.
Configuration du point d’installation 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
Configuration du certificat côté serveur
Dans la configuration du site Apache, montez le certificat via les directives telles que 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>
- À partir d'Apache 2.4.8, il est également possible de fusionner la chaîne de certificats directement dans le fichier
SSLCertificateFile. Dans ce cas,SSLCertificateChainFilepeut être omis et le champca_pathdu point d’installation de clmBot doit rester vide. - Sélectionnez le nom du service selon la distribution :
httpdpour RHEL/CentOS,apache2pour Debian/Ubuntu.
Configuration du point d’installation 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
Configuration du certificat côté serveur
Tomcat 8.5 et versions ultérieures montent le keystore JKS dans conf/server.xml via SSLHostConfig :
<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>
Configuration du point d’installation 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
Si Tomcat est géré par systemd, after_script peut être simplifié en systemctl restart <tomcat 服务名>.
Tomcat + PEM
Configuration du certificat côté serveur
Tomcat 8.5 et les versions ultérieures prennent en charge l’utilisation directe de fichiers PEM, sans conversion en 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>
Configuration du point d’installation 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
Service personnalisé + PFX
Adapté aux services utilisant des certificats sous forme d’un paquet de certificats à fichier unique (PKCS#12). after_script permet d’utiliser les variables du modèle 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
Vérification
Une fois la configuration terminée, vous pouvez déclencher manuellement une mise à jour pour vérifier l’ensemble du processus :
./clm-bot-linux-amd64 update-certificate
Une fois que vous avez confirmé que le fichier de certificat a été mis à jour, que le service a été rechargé et que le nouveau certificat est en vigueur, configurez la mise à jour automatique selon la méthode de mise à jour du certificat.