Ana içeriğe geç

Yapılandırma Referansı

clmBot davranışı, kurulum dizinindeki config.yaml yapılandırma dosyası tarafından kontrol edilir. Bu dosya, login, discover-certificate veya add-server komutları yürütüldüğünde otomatik olarak oluşturulur ve ayrıca manuel olarak da düzenlenebilir.

Varsayılan olarak, clmBot yapılandırma dosyasını geçerli dizinden config.yaml okur. Ayrıca, genel parametre -c kullanılarak yapılandırma dosyasının yolu 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:Bağlantı Yapılandırması​

AlanAçıklama
base_urlBulut API adresi, teslimat bilgilerine göre doldurun, genellikle değiştirilmesine gerek yoktur
ignore_sslHTTPS sertifika doğrulamasının yok sayılıp sayılmayacağı. Yalnızca özel imzalı sertifika kullanılan 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ş bir değere dönüştürülür

servers:Kurulum Noktası Listesi​

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

AlanAçıklama
idKurulum noktası tanımlayıcısı, iş anlamı olan bir ad kullanmanız önerilir
sub_codeSertifika abonelik numarası, yönetim panelindeki sertifika aboneliğine karşılık gelir, clmBot bu numaraya göre en son sertifikayı alır
formatSertifika formatı ve dosya yolu; yalnızca pem, pfx, jks, iis, exchange türlerinden biri korunabilir
before_scriptGüncellemeden önce çalıştırılan betik; betik başarısız olursa mevcut kurulum noktasının güncellemesi kesintiye uğrar
after_scriptGüncellemeden sonra çalıştırılan betik; genellikle ara katman servislerini 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 sertifika dosyası yolu. Güncelleme sırasında yaprak sertifika yazılır; ca_path boşsa, tam sertifika zinciri de yazılır
ca_pathCA zincir dosyası yolu, boş olabilir
key_pathÖzel anahtar dosyası 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 girişi takma adı. Boşsa, yalnızca keystore'da tek bir giriş varsa otomatik olarak çıkarılabilir
key_passAnahtar özel anahtar parolası
store_passkeystore parolası

iis​

Windows IIS HTTPS bağlama 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 temsil 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 sertifika içe aktarma ve bağlama güncellemelerini otomatik olarak tamamlar, genellikle betik yapılandırması gerekmez.

exchange​

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

AlanAçıklama
servicesDeğiştirilen sertifikanın etkinleştirilmesi gereken Exchange hizmet adlarının listesi, ör. ["IIS", "SMTP", "POP", "IMAP"]

Komut Dosyası Çalıştırma Açıklaması​

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

  1. Yerel sertifika dosyasını yedeklemeyi deneyin (zaman damgalı bir .bak yedeği oluşturun); yedekleme başarısız olursa hatayı kaydedin ve devam edin.
  2. before_script komutunu çalıştırın; başarısız olursa mevcut kurulum noktasının güncellemesini durdurun.
  3. Yeni sertifikayı yazın.
  4. Yapılandırmaya göre after_script komutunu çalıştırın; komut dosyası, ara katman hizmetlerini yeniden yüklemek veya yeniden başlatmakla sorumludur.

Yerel sertifika zaten güncel olduğunda, tüm güncelleme (komut dosyası dahil) atlanır; zorla çalıştırmak için after_script kullanılabilir, --force-after parametresi kullanılabilir.

Komut dosyası Linux üzerinde bash ile, Windows üzerinde powershell.exe -NoProfile -ExecutionPolicy Bypass ile çalıştırılır.

Komut Dosyası Şablon Değişkenleri​

before_script / after_script yazarken aşağıdaki şablon değişkenlerini kullanabilirsiniz; clmBot bunları yürütmeden önce 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 en güncel olup olmadığı (true / false). --force-after ile birlikte kullanıldığında, betikte sonraki işlemlerin atlanıp atlanmayacağını belirlemek için kullanılabilir

Sertifika formatına göre sağlanan değişkenler:

FormatDeğişkenAçıklama
pem{{ .PEM_CERT_PATH }}Site sertifika dosyası yolu
pem{{ .PEM_CA_PATH }}CA zinciri dosyası yolu
pem{{ .PEM_KEY_PATH }}Özel anahtar dosyası yolu
pfx{{ .PFX_PATH }}PFX dosyası yolu
pfx{{ .PFX_KEY_PASS }}PFX özel anahtar parolası
jks{{ .JKS_PATH }}JKS dosya yolu
jks{{ .JKS_ALIAS }}Sertifika girdi takma adı
jks{{ .JKS_KEY_PASS }}Girdi ö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 adları 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ışan hesabın okuyup yazabileceği şekilde kısıtlayın (ör. chmod 600 config.yaml).
  • AccessSecret kaydedildikten sonra şifrelenmiş biçimde saklanır, ancak yine de yapılandırma dosyasının güvenilmeyen konumlara kopyalanmasından kaçınılmalıdır.
  • clmBot için özel bir çalışan hesabı kullanın ve en düşük ayrıcalık ilkesine göre yetki verin; bkz. Çalıştırma İzni Gereksinimleri.