Referencia de configuración
El comportamiento de clmBot está controlado por el archivo de configuración config.yaml en el directorio de instalación. Este archivo se genera automáticamente al ejecutar login, discover-certificate o add-server, y también puede editarse manualmente.
De forma predeterminada, clmBot lee config.yaml desde el directorio actual, y la ruta del archivo de configuración también puede especificarse mediante el parámetro global -c:
./clm-bot-linux-amd64 -c /opt/clm-bot/config.yaml update-certificate
Estructura general
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: configuración de acceso
| Campo | Descripción |
|---|---|
base_url | Dirección de la API en la nube. Complétela según la información de entrega; por lo general, no es necesario modificarla |
ignore_ssl | Indica si se debe ignorar la validación del certificado HTTPS. Habilítelo solo en entornos controlados que utilicen certificados autofirmados |
access_key | AccessKey asignado por la nube |
access_secret | AccessSecret asignado por la nube. Una vez que el texto sin cifrar es guardado por el programa por primera vez, se migra automáticamente al valor cifrado que comienza con ENC1+ |
servers: lista de puntos de instalación
Cada entrada servers[] corresponde a un punto de instalación de certificado:
| Campo | Descripción |
|---|---|
id | Identificador del punto de instalación. Se recomienda utilizar un nombre con significado para el negocio |
sub_code | Número de suscripción del certificado, correspondiente a la suscripción de certificado en el panel de administración; clmBot lo utiliza para obtener el certificado más reciente |
format | Formato del certificado y ruta del archivo; solo se puede conservar uno de los siguientes: pem, pfx, jks, iis, exchange |
before_script | Script que se ejecuta antes de la actualización; si el script falla, se interrumpirá la actualización de este punto de instalación |
after_script | Script que se ejecuta después de la actualización; normalmente se utiliza para recargar el servicio del middleware |
format: formato del certificado
pem
Adecuado para escenarios en los que se utilizan archivos PEM, como nginx, Apache HTTP Server, Tomcat, etc.:
| Campo | Descripción |
|---|---|
cert_path | Ruta del archivo del certificado del sitio. Al actualizar, se escribe el certificado hoja; si ca_path está vacío, se escribe también la cadena completa del certificado |
ca_path | Ruta del archivo de la cadena CA, puede estar vacío |
key_path | Ruta del archivo de la clave privada |
pfx
Adecuado para servicios que requieren un paquete de certificado en un solo archivo (PKCS#12):
| Campo | Descripción |
|---|---|
path | Ruta del archivo PFX |
key_pass | Contraseña de la clave privada PFX; puede dejarse vacía si el servicio de destino no requiere contraseña |
jks
Adecuado para escenarios de keystore de Java, como Tomcat:
| Campo | Descripción |
|---|---|
path | Ruta del archivo JKS |
alias | Alias de la entrada del certificado. Si está vacío, solo se puede inferir automáticamente cuando el keystore tiene una única entrada |
key_pass | contraseña de la clave privada de la entrada |
store_pass | contraseña del keystore |
iis
Adecuado para el enlace HTTPS de Windows IIS:
| Campo | Descripción |
|---|---|
name | nombre del sitio IIS, puede consultarse en el Administrador de IIS |
addr | IP de enlace HTTPS, * significa todas las IP |
port | puerto de enlace HTTPS |
domain | dominio de enlace HTTPS, puede dejarse vacío cuando no hay dominio SNI |
El punto de instalación de IIS completa automáticamente la importación del certificado y la actualización del enlace mediante el script integrado de clmBot; normalmente no es necesario configurar scripts.
exchange
Adecuado para certificados de servicio de Windows Exchange:
| Campo | Descripción |
|---|---|
services | Lista de nombres de servicios de Exchange que necesitan habilitar el nuevo certificado, como ["IIS", "SMTP", "POP", "IMAP"] |
Instrucciones de ejecución del script
before_script y after_script se ejecutan en el siguiente orden al actualizar el certificado:
- Realice una copia de seguridad del archivo de certificado local (generando una copia de seguridad
.bakcon marca de tiempo). - Ejecute
before_script; si falla, interrumpa la actualización en el punto de instalación actual. - Escriba el nuevo certificado.
- Ejecute
after_scriptpara recargar o reiniciar el servicio de middleware.
Cuando el certificado local ya está actualizado, toda la actualización (incluido el script) se omite; si necesita forzar la ejecución after_script, puede usar el parámetro --force-after.
El script se ejecuta en Linux mediante bash, y en Windows mediante powershell.exe -NoProfile -ExecutionPolicy Bypass.
Variables de plantilla del script
Al escribir before_script / after_script, puede usar las siguientes variables de plantilla, que clmBot reemplazará por los valores reales antes de la ejecución.
Variables generales:
| Variable | Descripción |
|---|---|
{{ .ID }} | Punto de instalación id |
{{ .SUB_CODE }} | Número de suscripción del certificado |
{{ .OS_TYPE }} | Tipo de sistema operativo (windows / linux / darwin) |
{{ .IS_WINDOWS }} | Si es Windows (true / false) |
{{ .IS_LINUX }} | Si es Linux (true / false) |
{{ .TIMESTAMP }} | Marca de tiempo actual (segundos) |
{{ .DATETIME }} | Fecha y hora actuales (formato 2006-01-02 15:04:05) |
{{ .DATE }} | Fecha actual (formato 2006-01-02) |
{{ .LATEST }} | Indica si el certificado ya está actualizado (true / false). Cuando se usa junto con --force-after, permite determinar en el script si se deben omitir las operaciones posteriores. |
Variables proporcionadas según el formato del certificado:
| Formato | Variable | Descripción |
|---|---|---|
| pem | {{ .PEM_CERT_PATH }} | Ruta del archivo del certificado del sitio |
| pem | {{ .PEM_CA_PATH }} | Ruta del archivo de la cadena de CA |
| pem | {{ .PEM_KEY_PATH }} | Ruta del archivo de la clave privada |
| pfx | {{ .PFX_PATH }} | Ruta del archivo PFX |
| pfx | {{ .PFX_KEY_PASS }} | Contraseña de la clave privada PFX |
| jks | {{ .JKS_PATH }} | Ruta del archivo JKS |
| jks | {{ .JKS_ALIAS }} | Alias de la entrada del certificado |
| jks | {{ .JKS_KEY_PASS }} | Contraseña de la clave privada de la entrada |
| jks | {{ .JKS_STORE_PASS }} | Contraseña del keystore |
| iis | {{ .IIS_SITE_NAME }} | Nombre del sitio IIS |
| iis | {{ .IIS_IPADDR }} | IP de enlace HTTPS |
| iis | {{ .IIS_PORT }} | Puerto de enlace HTTPS |
| iis | {{ .IIS_DOMAIN }} | Dominio vinculado HTTPS |
| exchange | {{ .EXCHANGE_SERVICES }} | Lista de nombres de servicios de Exchange (separados por comas) |
Recomendaciones de seguridad
config.yamlcontiene credenciales de acceso y la ruta de la clave privada; limite sus permisos de archivo a solo lectura y escritura para la cuenta de ejecución (por ejemplo,chmod 600 config.yaml).- Después de guardar
AccessSecret, se almacenará en formato cifrado; no obstante, evite copiar el archivo de configuración a ubicaciones no confiables. - Utilice una cuenta dedicada para ejecutar clmBot y otorgue permisos según el principio de mínimo privilegio; consulte Requisitos de permisos de ejecución.