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ı
| Alan | Açıklama |
|---|---|
base_url | Bulut API adresi, teslimat bilgilerine göre doldurun, genellikle değiştirilmesine gerek yoktur |
ignore_ssl | HTTPS sertifika doğrulamasının yok sayılıp sayılmayacağı. Yalnızca özel imzalı sertifika kullanılan 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ş 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:
| Alan | Açıklama |
|---|---|
id | Kurulum noktası tanımlayıcısı, iş anlamı olan bir ad kullanmanız önerilir |
sub_code | Sertifika abonelik numarası, yönetim panelindeki sertifika aboneliğine karşılık gelir, clmBot bu numaraya göre en son sertifikayı alır |
format | Sertifika formatı ve dosya yolu; yalnızca pem, pfx, jks, iis, exchange türlerinden biri korunabilir |
before_script | Güncellemeden önce çalıştırılan betik; betik başarısız olursa mevcut kurulum noktasının güncellemesi kesintiye uğrar |
after_script | Gü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:
| Alan | Açıklama |
|---|---|
cert_path | Site 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_path | CA zincir dosyası yolu, boş olabilir |
key_path | Özel anahtar dosyası 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 girişi takma adı. Boşsa, yalnızca keystore'da tek bir giriş varsa otomatik olarak çıkarılabilir |
key_pass | Anahtar özel anahtar parolası |
store_pass | keystore parolası |
iis
Windows IIS HTTPS bağlama 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 temsil 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 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:
| Alan | Açıklama |
|---|---|
services | Değ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:
- Yerel sertifika dosyasını yedeklemeyi deneyin (zaman damgalı bir
.bakyedeği oluşturun); yedekleme başarısız olursa hatayı kaydedin ve devam edin. before_scriptkomutunu çalıştırın; başarısız olursa mevcut kurulum noktasının güncellemesini durdurun.- Yeni sertifikayı yazın.
- Yapılandırmaya göre
after_scriptkomutunu ç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ş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 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:
| Format | Değişken | Açı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.yamleriş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).AccessSecretkaydedildikten 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.