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ı
| Alan | Açıklama |
|---|---|
base_url | Bulut API adresi, teslimat bilgilerine göre doldurun, genellikle değiştirilmesi gerekmez |
ignore_ssl | HTTPS sertifika doğrulamasının yoksayılıp yoksayılmayacağı. Yalnızca kendinden imzalı sertifika kullanan kontrollü ortamlarda etkinleştirin |
access_key | Bulut tarafından atanan AccessKey |
access_secret | Bulut 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:
| Alan | Açıklama |
|---|---|
id | Kurulum noktası kimliği, iş anlamı taşıyan bir ad kullanılması önerilir |
sub_code | Sertifika abonelik numarası, yönetim panelindeki sertifika aboneliğine karşılık gelir, clmBot buna göre en güncel sertifikayı alır |
format | Sertifika formatı ve dosya yolu, yalnızca pem, pfx, jks, iis, exchange arasından biri olabilir |
before_script | Gü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_script | Gü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:
| Alan | Açıklama |
|---|---|
cert_path | Site 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_path | CA zinciri dosya yolu, boş olabilir |
key_path | Özel anahtar dosya yolu |
pfx
Tek dosyalık sertifika paketi (PKCS#12) gerektiren hizmetler için uygundur:
| Alan | Açıklama |
|---|---|
path | PFX dosya yolu |
key_pass | PFX özel anahtar parolası; hedef hizmet parola gerektirmiyorsa boş bırakılabilir |
jks
Tomcat gibi Java keystore senaryoları için uygundur:
| Alan | Açıklama |
|---|---|
path | JKS dosya yolu |
alias | Sertifika girdisi takma adı. Boş olduğunda, yalnızca keystore içinde tek bir girdi varsa otomatik olarak belirlenebilir |
key_pass | Girdi özel anahtar parolası |
store_pass | keystore parolası |
iis
Windows IIS HTTPS bağlaması için geçerlidir:
| Alan | Açıklama |
|---|---|
name | IIS site adı, IIS Yöneticisi'nde görüntülenebilir |
addr | HTTPS bağlama IP'si, * tüm IP'leri ifade eder |
port | HTTPS bağlama portu |
domain | HTTPS 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:
| Alan | Açıklama |
|---|---|
services | Yeni 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:
- Yerel sertifika dosyasını yedekleyin (zaman damgalı
.bakyedeği oluşturulur). before_scriptyürütün; başarısız olursa geçerli kurulum noktasının güncellemesini kesin.- Yeni sertifikayı yazın.
after_scriptyü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şken | Açı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çim | Değişken | Açı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.yamleriş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).AccessSecretkaydedildikten 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.