Ana içeriğe geç

Yapılandırma Referansı

clmBot'un davranışı, kurulum dizinindeki config.yaml yapılandırma dosyası tarafından kontrol edilir. Bu dosya login, discover-certificate veya add-server çalıştırıldığında otomatik olarak oluşturulur ve ayrıca elle de düzenlenebilir.

Varsayılan olarak clmBot, geçerli dizinden config.yaml dosyasını okur; yapılandırma dosyası yolu, global -c parametresi ile de belirtilebilir:

./clm-bot-linux-amd64 -c /opt/clm-bot/config.yaml update-certificate

Genel Yapı

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:Erişim yapılandırması

AlanAçıklama
base_urlBulut API adresi, teslimat bilgilerine göre doldurun, genellikle değiştirilmesi gerekmez
ignore_sslHTTPS sertifika doğrulamasının yoksayılıp yoksayılmayacağı. Yalnızca kendinden imzalı sertifika kullanan kontrollü ortamlarda etkinleştirin
access_keyBulut tarafından atanan AccessKey
access_secretBulut tarafından atanan AccessSecret. Düz metin ilk kez program tarafından kaydedildikten sonra otomatik olarak ENC1+ ile başlayan şifrelenmiş değere taşınır

servers:Kurulum noktası listesi

Her servers[] girdisi bir sertifika kurulum noktasına karşılık gelir:

AlanAçıklama
idKurulum noktası kimliği, iş anlamı taşıyan bir ad kullanılması önerilir
sub_codeSertifika abonelik numarası, yönetim panelindeki sertifika aboneliğine karşılık gelir, clmBot buna göre en güncel sertifikayı alır
formatSertifika formatı ve dosya yolu, yalnızca pem, pfx, jks, iis, exchange arasından biri olabilir
before_scriptGüncellemeden önce çalıştırılan betik; betik başarısız olursa geçerli kurulum noktasının güncellemesi kesintiye uğrar
after_scriptGüncellemeden sonra çalıştırılan betik; genellikle ara katman hizmetini yeniden yüklemek için kullanılır

format: Sertifika formatı

pem

nginx, Apache HTTP Server, Tomcat gibi PEM dosyası kullanan senaryolar için uygundur:

AlanAçıklama
cert_pathSite sertifikası dosya yolu. Güncelleme sırasında yaprak sertifika yazılır; ca_path boşsa, tam sertifika zinciri de birlikte yazılır
ca_pathCA zinciri dosya yolu, boş olabilir
key_pathÖzel anahtar dosya yolu

pfx

Tek dosyalık sertifika paketi (PKCS#12) gerektiren hizmetler için uygundur:

AlanAçıklama
pathPFX dosya yolu
key_passPFX özel anahtar parolası; hedef hizmet parola gerektirmiyorsa boş bırakılabilir

jks

Tomcat gibi Java keystore senaryoları için uygundur:

AlanAçıklama
pathJKS dosya yolu
aliasSertifika girdisi takma adı. Boş olduğunda, yalnızca keystore içinde tek bir girdi varsa otomatik olarak belirlenebilir
key_passGirdi özel anahtar parolası
store_passkeystore parolası

iis

Windows IIS HTTPS bağlaması için geçerlidir:

AlanAçıklama
nameIIS site adı, IIS Yöneticisi'nde görüntülenebilir
addrHTTPS bağlama IP'si, * tüm IP'leri ifade eder
portHTTPS bağlama portu
domainHTTPS bağlama alan adı, SNI alan adı yoksa boş bırakılabilir

IIS kurulum noktası, clmBot yerleşik betiği tarafından otomatik olarak sertifika içe aktarma ve bağlama güncellemesi yapılır; genellikle betik yapılandırması gerekmez.

exchange

Windows Exchange hizmet sertifikası için geçerlidir:

AlanAçıklama
servicesYeni sertifikanın etkinleştirilmesi gereken Exchange hizmet adları listesi, örn. ["IIS", "SMTP", "POP", "IMAP"]

Betik Yürütme Açıklaması

before_script ve after_script, sertifika güncellenirken aşağıdaki sırayla yürütülür:

  1. Yerel sertifika dosyasını yedekleyin (zaman damgalı .bak yedeği oluşturulur).
  2. before_script yürütün; başarısız olursa geçerli kurulum noktasının güncellemesini kesin.
  3. Yeni sertifikayı yazın.
  4. after_script yürütün; ara katman hizmetini yeniden yükleyin veya yeniden başlatın.

Yerel sertifika zaten güncel olduğunda, tüm güncelleme (betik dahil) atlanır; zorla yürütmek için after_script, --force-after parametresini kullanabilirsiniz.

Betik Linux'ta bash ile, Windows'ta powershell.exe -NoProfile -ExecutionPolicy Bypass ile yürütülür.

Betik Şablon Değişkenleri

before_script / after_script yazarken aşağıdaki şablon değişkenlerini kullanabilirsiniz; clmBot yürütmeden önce bunları gerçek değerlerle değiştirir.

Genel değişkenler:

DeğişkenAçıklama
{{ .ID }}Kurulum noktası id
{{ .SUB_CODE }}Sertifika abonelik numarası
{{ .OS_TYPE }}İşletim sistemi türü (windows / linux / darwin)
{{ .IS_WINDOWS }}Windows olup olmadığı (true / false)
{{ .IS_LINUX }}Linux olup olmadığı(true / false
{{ .TIMESTAMP }}Geçerli zaman damgası(saniye)
{{ .DATETIME }}Geçerli tarih ve saat(2006-01-02 15:04:05 biçimi)
{{ .DATE }}Geçerli tarih(2006-01-02 biçimi)
{{ .LATEST }}Sertifikanın güncel olup olmadığı (true / false). --force-after ile birlikte kullanıldığında, betikte sonraki işlemlerin atlanıp atlanmayacağına karar verilebilir

Sertifika biçimine göre sağlanan değişkenler:

BiçimDeğişkenAçıklama
pem{{ .PEM_CERT_PATH }}Site sertifika dosyası yolu
pem{{ .PEM_CA_PATH }}CA zinciri dosya yolu
pem{{ .PEM_KEY_PATH }}Özel anahtar dosya yolu
pfx{{ .PFX_PATH }}PFX dosya yolu
pfx{{ .PFX_KEY_PASS }}PFX özel anahtar parolası
jks{{ .JKS_PATH }}JKS dosya yolu
jks{{ .JKS_ALIAS }}Sertifika girişi takma adı
jks{{ .JKS_KEY_PASS }}Giriş özel anahtar parolası
jks{{ .JKS_STORE_PASS }}keystore parolası
iis{{ .IIS_SITE_NAME }}IIS site adı
iis{{ .IIS_IPADDR }}HTTPS bağlama IP'si
iis{{ .IIS_PORT }}HTTPS bağlama portu
iis{{ .IIS_DOMAIN }}HTTPS bağlama alan adı
exchange{{ .EXCHANGE_SERVICES }}Exchange hizmet adı listesi (virgülle ayrılmış)

Güvenlik Önerileri

  • config.yaml erişim kimlik bilgilerini ve özel anahtar yolunu içerir; dosya izinlerini yalnızca çalıştırma hesabının okuyup yazabileceği şekilde sınırlayın (ör. chmod 600 config.yaml).
  • AccessSecret kaydedildikten sonra şifreli biçimde saklanır, ancak yine de yapılandırma dosyasını güvenilmeyen konumlara kopyalamaktan kaçının.
  • clmBot için özel bir çalıştırma hesabı kullanın ve en az ayrıcalık ilkesine göre yetkilendirin; bkz. Çalıştırma İzni Gereksinimleri.