Référence de configuration
Le comportement de clmBot est contrôlé par le fichier de configuration config.yaml situé dans le répertoire d’installation. Ce fichier est généré automatiquement lors de l’exécution de login, discover-certificate ou add-server, mais il peut également être modifié manuellement.
Par défaut, clmBot lit config.yaml depuis le répertoire courant, mais il est aussi possible de spécifier le chemin du fichier de configuration via le paramètre global -c :
./clm-bot-linux-amd64 -c /opt/clm-bot/config.yaml update-certificate
总体结构
app:
base_url: https://<云端地址>
ignore_ssl: false
access_key: YOUR_ACCESS_KEY
access_secret: YOUR_ACCESS_SECRET
servers:
- id: nginx_pem
sub_code: <证书订阅号>
format:
pem:
cert_path: /etc/nginx/ssl/example.com.crt
ca_path: /etc/nginx/ssl/example.com.ca.crt
key_path: /etc/nginx/ssl/example.com.key
before_script: |
...
after_script: |
nginx -t && nginx -s reload
app : Configuration d’intégration
| Champ | Description |
|---|---|
base_url | Adresse API cloud, à renseigner selon les informations de livraison, généralement aucune modification requise |
ignore_ssl | Indique si la vérification du certificat HTTPS doit être ignorée. À activer uniquement dans un environnement contrôlé utilisant un certificat auto-signé |
access_key | AccessKey attribué par le cloud |
access_secret | AccessSecret attribué par le cloud. Après la première sauvegarde en clair par le programme, il est automatiquement migré vers une valeur chiffrée commençant par ENC1+ |
servers : Liste des points d’installation
Chaque entrée servers[] correspond à un point d’installation de certificat :
| Champ | Description |
|---|---|
id | Identifiant du point d’installation, il est recommandé d’utiliser un nom ayant une signification métier |
sub_code | Numéro d’abonnement au certificat, correspondant à l’abonnement au certificat dans la console d’administration ; clmBot récupère le certificat le plus récent via ce numéro |
format | Format du certificat et chemin du fichier ; ne conserver qu’un seul parmi pem, pfx, jks, iis, exchange |
before_script | Script exécuté avant la mise à jour ; en cas d’échec du script, la mise à jour du point d’installation actuel est interrompue |
after_script | Script exécuté après la mise à jour, généralement utilisé pour recharger le service intermédiaire |
format : format du certificat
pem
Adapté aux scénarios utilisant des fichiers PEM, tels que nginx, Apache HTTP Server, Tomcat, etc. :
| Champ | Description |
|---|---|
cert_path | Chemin du fichier de certificat du site. Lors de la mise à jour, le certificat feuille est écrit ; si ca_path est vide, la chaîne complète de certificats est également écrite |
ca_path | Chemin du fichier de la chaîne CA, peut être vide |
key_path | Chemin du fichier de clé privée |
pfx
Convient aux services nécessitant un package de certificat à fichier unique (PKCS#12) :
| Champ | Description |
|---|---|
path | Chemin du fichier PFX |
key_pass | Mot de passe de la clé privée PFX, peut être laissé vide si le service cible n'exige pas de mot de passe |
jks
Convient aux scénarios de keystore Java tels que Tomcat :
| Champ | Description |
|---|---|
path | Chemin du fichier JKS |
alias | Alias de l'entrée de certificat. S'il est vide, il ne peut être déduit automatiquement que si le keystore ne contient qu'une seule entrée |
key_pass | Mot de passe de la clé privée de l'entrée |
store_pass | Mot de passe du keystore |
iis
Applicable à la liaison HTTPS de Windows IIS :
| Champ | Description |
|---|---|
name | Nom du site IIS, consultable dans le gestionnaire IIS |
addr | IP de liaison HTTPS, * représente toutes les IP |
port | Port de liaison HTTPS |
domain | Domaine de liaison HTTPS, peut être laissé vide si aucun domaine SNI n'est configuré |
Le point d'installation IIS est configuré automatiquement par le script intégré de clmBot pour l'importation du certificat et la mise à jour de la liaison, aucun script de configuration n'est généralement requis.
exchange
Applicable aux certificats de service Windows Exchange :
| Champ | Description |
|---|---|
services | Liste des noms de services Exchange devant activer le nouveau certificat, par exemple ["IIS", "SMTP", "POP", "IMAP"] |
Instructions d'exécution des scripts
before_script et after_script s'exécutent dans l'ordre suivant lors de la mise à jour du certificat :
- Tentative de sauvegarde du fichier de certificat local (génération d'une sauvegarde
.bakhorodatée) ; en cas d'échec, l'erreur est consignée et le processus continue. - Exécution de
before_script; en cas d'échec, la mise à jour du point d'installation actuel est interrompue. - Écriture du nouveau certificat.
- Exécution de
after_scriptselon la configuration ; le script est responsable du rechargement ou du redémarrage du service middleware.
Lorsque le certificat local est déjà à jour, toute la mise à jour (y compris le script) est ignorée ; pour forcer l'exécution de after_script, vous pouvez utiliser le paramètre --force-after.
Le script est exécuté via bash sous Linux, et via powershell.exe -NoProfile -ExecutionPolicy Bypass sous Windows.
Variables de modèle de script
Lors de la rédaction de before_script / after_script, vous pouvez utiliser les variables de modèle suivantes, qui seront remplacées par les valeurs réelles par clmBot avant l'exécution.
Variables générales :
| Variable | Description |
|---|---|
{{ .ID }} | Point d'installation id |
{{ .SUB_CODE }} | Numéro d’abonnement du certificat |
{{ .OS_TYPE }} | Type de système d’exploitation(windows / linux / darwin) |
{{ .IS_WINDOWS }} | Est-ce Windows(true / false) |
{{ .IS_LINUX }} | Est-ce Linux (true / false) |
{{ .TIMESTAMP }} | Horodatage actuel (en secondes) |
{{ .DATETIME }} | Date et heure actuelles (format 2006-01-02 15:04:05) |
{{ .DATE }} | Date actuelle (format 2006-01-02) |
{{ .LATEST }} | Indique si le certificat est à jour (true / false). Associé à --force-after, il permet au script de déterminer s'il doit ignorer les étapes suivantes |
Variables fournies selon le format du certificat :
| Format | Variable | Description |
|---|---|---|
| pem | {{ .PEM_CERT_PATH }} | Chemin du fichier du certificat du site |
| pem | {{ .PEM_CA_PATH }} | Chemin du fichier de la chaîne CA |
| pem | {{ .PEM_KEY_PATH }} | Chemin du fichier de la clé privée |
| pfx | {{ .PFX_PATH }} | Chemin du fichier PFX |
| pfx | {{ .PFX_KEY_PASS }} | Mot de passe de la clé privée PFX |
| jks | {{ .JKS_PATH }} | Chemin du fichier JKS |
| jks | {{ .JKS_ALIAS }} | Alias de l’entrée du certificat |
| jks | {{ .JKS_KEY_PASS }} | Mot de passe de la clé privée de l’entrée |
| jks | {{ .JKS_STORE_PASS }} | Mot de passe du keystore |
| iis | {{ .IIS_SITE_NAME }} | Nom du site IIS |
| iis | {{ .IIS_IPADDR }} | IP de liaison HTTPS |
| iis | {{ .IIS_PORT }} | Port de liaison HTTPS |
| iis | {{ .IIS_DOMAIN }} | Nom de domaine lié à HTTPS |
| exchange | {{ .EXCHANGE_SERVICES }} | Liste des noms de services Exchange (séparés par des virgules) |
Recommandations de sécurité
config.yamlcontient les identifiants d'accès et le chemin de la clé privée. Veuillez limiter les permissions de ce fichier pour que seul le compte d'exécution puisse le lire et l'écrire (par exemplechmod 600 config.yaml).AccessSecretsera stocké sous forme chiffrée après enregistrement, mais vous devez tout de même éviter de copier le fichier de configuration vers un emplacement non fiable.- Utilisez un compte d'exécution dédié pour clmBot et accordez les autorisations minimales requises, voir Exigences relatives aux autorisations d'exécution.