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, et peut également être modifié manuellement.
Par défaut, clmBot lit config.yaml depuis le répertoire courant. Vous pouvez aussi indiquer le chemin du fichier de configuration à l’aide du paramètre global -c :
./clm-bot-linux-amd64 -c /opt/clm-bot/config.yaml update-certificate
Structure globale
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’accès
| Champ | Description |
|---|---|
base_url | Adresse de l’API cloud, à renseigner selon les informations de livraison ; en général, aucune modification n’est nécessaire |
ignore_ssl | Indique s’il faut ignorer la validation du certificat HTTPS. À activer uniquement dans un environnement contrôlé utilisant des certificats auto-signés |
access_key | AccessKey attribuée par le cloud |
access_secret | AccessSecret attribué par le cloud. Lors de la première sauvegarde du texte 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 conseillé d’utiliser un nom ayant une signification métier |
sub_code | Numéro d’abonnement de certificat, correspondant à l’abonnement de certificat dans le back-office ; clmBot l’utilise pour obtenir le certificat le plus récent |
format | Format du certificat et chemin du fichier, seuls pem, pfx, jks, iis, exchange sont autorisés |
before_script | Script exécuté avant la mise à jour ; en cas d’échec du script, la mise à jour du point d’installation est interrompue |
after_script | Script exécuté après la mise à jour, généralement utilisé pour recharger le service middleware |
format : Format du certificat
pem
Convient 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 du certificat est également écrite |
ca_path | Chemin du fichier de chaîne CA, peut être vide |
key_path | Chemin du fichier de clé privée |
pfx
Convient aux services nécessitant un paquet 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 du certificat. Lorsqu’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
Convient à la liaison HTTPS de Windows IIS :
| Champ | Description |
|---|---|
name | Nom du site IIS, consultable dans le gestionnaire IIS |
addr | IP de liaison HTTPS, * signifie toutes les IP |
port | Port de liaison HTTPS |
domain | Domaine de liaison HTTPS, peut être laissé vide en l’absence de domaine SNI |
Le point d’installation IIS effectue automatiquement l’importation du certificat et la mise à jour de la liaison via le script intégré de clmBot ; aucune configuration de script n’est généralement nécessaire.
exchange
Convient aux certificats de service Windows Exchange :
| Champ | Description |
|---|---|
services | Liste des noms des services Exchange pour lesquels le nouveau certificat doit être activé, par exemple ["IIS", "SMTP", "POP", "IMAP"] |
Instructions d’exécution du script
before_script et after_script sont exécutés dans l’ordre suivant lors du renouvellement du certificat :
- Sauvegarder les fichiers de certificat locaux (générer une sauvegarde
.bakhorodatée). - Exécuter
before_script; en cas d’échec, interrompre la mise à jour du point d’installation en cours. - Écrire le nouveau certificat.
- Exécuter
after_scriptpour recharger ou redémarrer le 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 after_script, vous pouvez utiliser le paramètre --force-after.
Le script est exécuté sous Linux via bash et sous Windows via powershell.exe -NoProfile -ExecutionPolicy Bypass.
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, que clmBot remplacera par les valeurs réelles avant l’exécution.
Variables générales :
| Variable | Description |
|---|---|
{{ .ID }} | Point d’installation id |
{{ .SUB_CODE }} | Numéro d’abonnement au certificat |
{{ .OS_TYPE }} | Type de système d’exploitation (windows / linux / darwin) |
{{ .IS_WINDOWS }} | S’il s’agit de Windows (true / false) |
{{ .IS_LINUX }} | S'il s'agit de 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 déjà à jour (true / false). Lorsqu'il est utilisé avec --force-after, il permet de déterminer dans le script s'il faut ignorer les opérations suivantes |
Variables fournies selon le format du certificat :
| Format | Variable | Description |
|---|---|---|
| pem | {{ .PEM_CERT_PATH }} | Chemin du fichier de certificat du site |
| pem | {{ .PEM_CA_PATH }} | Chemin du fichier de chaîne CA |
| pem | {{ .PEM_KEY_PATH }} | Chemin du fichier de 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 }} | Liaison HTTPS du nom de domaine |
| 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 à la lecture et à l’écriture uniquement pour le compte d’exécution (par exemplechmod 600 config.yaml).AccessSecretsera stocké sous forme chiffrée après enregistrement, mais il faut tout de même éviter de copier le fichier de configuration vers des emplacements non fiables.- Utilisez un compte d’exécution dédié pour clmBot et attribuez-lui le moindre privilège. Voir Exigences relatives aux autorisations d’exécution.