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, 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​

ChampDescription
base_urlAdresse API cloud, à renseigner selon les informations de livraison, généralement aucune modification requise
ignore_sslIndique si la vérification du certificat HTTPS doit être ignorée. À activer uniquement dans un environnement contrôlé utilisant un certificat auto-signé
access_keyAccessKey attribué par le cloud
access_secretAccessSecret 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 :

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

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 de certificats est également écrite
ca_pathChemin du fichier de la chaîne CA, peut être vide
key_pathChemin du fichier de clé privée

pfx​

Convient aux services nécessitant un package 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 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_passMot de passe de la clé privée de l'entrée
store_passMot de passe du keystore

iis​

Applicable à la liaison HTTPS de Windows IIS :

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

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

  1. Tentative de sauvegarde du fichier de certificat local (génération d'une sauvegarde .bak horodatée) ; en cas d'échec, l'erreur est consignée et le processus continue.
  2. Exécution de before_script ; en cas d'échec, la mise à jour du point d'installation actuel est interrompue.
  3. Écriture du nouveau certificat.
  4. Exécution de after_script selon 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 :

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

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