Aller au contenu principal

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

ChampDescription
base_urlAdresse de l’API cloud, à renseigner selon les informations de livraison ; en général, aucune modification n’est nécessaire
ignore_sslIndique s’il faut ignorer la validation du certificat HTTPS. À activer uniquement dans un environnement contrôlé utilisant des certificats auto-signés
access_keyAccessKey attribuée par le cloud
access_secretAccessSecret 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 :

ChampDescription
idIdentifiant du point d’installation ; il est conseillé d’utiliser un nom ayant une signification métier
sub_codeNumé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
formatFormat du certificat et chemin du fichier, seuls pem, pfx, jks, iis, exchange sont autorisés
before_scriptScript exécuté avant la mise à jour ; en cas d’échec du script, la mise à jour du point d’installation est interrompue
after_scriptScript 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. :

ChampDescription
cert_pathChemin 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_pathChemin du fichier de chaîne CA, peut être vide
key_pathChemin du fichier de clé privée

pfx

Convient aux services nécessitant un paquet de certificat à fichier unique (PKCS#12) :

ChampDescription
pathChemin du fichier PFX
key_passMot 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 :

ChampDescription
pathChemin du fichier JKS
aliasAlias 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_passMot de passe de la clé privée de l’entrée
store_passMot de passe du keystore

iis

Convient à la liaison HTTPS de Windows IIS :

ChampDescription
nameNom du site IIS, consultable dans le gestionnaire IIS
addrIP de liaison HTTPS, * signifie toutes les IP
portPort de liaison HTTPS
domainDomaine 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 :

ChampDescription
servicesListe 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 :

  1. Sauvegarder les fichiers de certificat locaux (générer une sauvegarde .bak horodatée).
  2. Exécuter before_script ; en cas d’échec, interrompre la mise à jour du point d’installation en cours.
  3. Écrire le nouveau certificat.
  4. Exécuter after_script pour 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 :

VariableDescription
{{ .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 :

FormatVariableDescription
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.yaml contient 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 exemple chmod 600 config.yaml).
  • AccessSecret sera 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.