Saltar al contenido principal

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

CampoDescripción
base_urlDirección de la API en la nube. Complétela según la información de entrega; por lo general, no es necesario modificarla
ignore_sslIndica si se debe ignorar la validación del certificado HTTPS. Habilítelo solo en entornos controlados que utilicen certificados autofirmados
access_keyAccessKey asignado por la nube
access_secretAccessSecret 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:

CampoDescripción
idIdentificador del punto de instalación. Se recomienda utilizar un nombre con significado para el negocio
sub_codeNú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
formatFormato del certificado y ruta del archivo; solo se puede conservar uno de los siguientes: pem, pfx, jks, iis, exchange
before_scriptScript que se ejecuta antes de la actualización; si el script falla, se interrumpirá la actualización de este punto de instalación
after_scriptScript 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.:

CampoDescripción
cert_pathRuta 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_pathRuta del archivo de la cadena CA, puede estar vacío
key_pathRuta del archivo de la clave privada

pfx

Adecuado para servicios que requieren un paquete de certificado en un solo archivo (PKCS#12):

CampoDescripción
pathRuta del archivo PFX
key_passContraseñ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:

CampoDescripción
pathRuta del archivo JKS
aliasAlias de la entrada del certificado. Si está vacío, solo se puede inferir automáticamente cuando el keystore tiene una única entrada
key_passcontraseña de la clave privada de la entrada
store_passcontraseña del keystore

iis

Adecuado para el enlace HTTPS de Windows IIS:

CampoDescripción
namenombre del sitio IIS, puede consultarse en el Administrador de IIS
addrIP de enlace HTTPS, * significa todas las IP
portpuerto de enlace HTTPS
domaindominio 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:

CampoDescripción
servicesLista 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:

  1. Realice una copia de seguridad del archivo de certificado local (generando una copia de seguridad .bak con marca de tiempo).
  2. Ejecute before_script; si falla, interrumpa la actualización en el punto de instalación actual.
  3. Escriba el nuevo certificado.
  4. Ejecute after_script para 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:

VariableDescripció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:

FormatoVariableDescripció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.yaml contiene 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.