Chuyển tới nội dung chính

Tham chiếu cấu hình

Hành vi của clmBot được điều khiển bởi tệp cấu hình config.yaml trong thư mục cài đặt. Tệp này được tạo tự động khi thực thi login, discover-certificate hoặc add-server, và cũng có thể chỉnh sửa thủ công.

Theo mặc định, clmBot đọc config.yaml từ thư mục hiện tại, cũng có thể chỉ định đường dẫn tệp cấu hình thông qua tham số toàn cục -c:

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

Cấu trúc tổng thể

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: Cấu hình kết nối

TrườngMô tả
base_urlĐịa chỉ API đám mây, điền theo thông tin bàn giao, thông thường không cần sửa đổi
ignore_sslCó bỏ qua xác thực chứng chỉ HTTPS hay không. Chỉ bật trong môi trường được kiểm soát có sử dụng chứng chỉ tự ký
access_keyAccessKey do đám mây phân bổ
access_secretAccessSecret do đám mây phân bổ. Sau khi văn bản thuần túy được chương trình lưu lần đầu, nó sẽ tự động chuyển thành giá trị mã hóa bắt đầu bằng ENC1+

servers: Danh sách điểm cài đặt

Mỗi mục servers[] tương ứng với một điểm cài đặt chứng chỉ:

TrườngMô tả
idĐịnh danh điểm cài đặt, nên sử dụng tên có ý nghĩa nghiệp vụ
sub_codeSố đăng ký chứng chỉ, tương ứng với đăng ký chứng chỉ trong trang quản trị, clmBot sẽ lấy chứng chỉ mới nhất theo số này
formatĐịnh dạng chứng chỉ và đường dẫn tệp, chỉ có thể giữ một trong các loại pem, pfx, jks, iis, exchange
before_scriptTập lệnh thực thi trước khi cập nhật, nếu tập lệnh thất bại sẽ làm gián đoạn quá trình cập nhật tại điểm cài đặt hiện tại
after_scriptTập lệnh thực thi sau khi cập nhật, thường dùng để tải lại dịch vụ middleware

format: Định dạng chứng chỉ

pem

Phù hợp với các tình huống sử dụng tệp PEM cho nginx, Apache HTTP Server, Tomcat, v.v.:

TrườngMô tả
cert_pathĐường dẫn tệp chứng chỉ trang web. Khi cập nhật, ghi chứng chỉ lá; nếu ca_path trống, đồng thời ghi chuỗi chứng chỉ đầy đủ
ca_pathĐường dẫn tệp chuỗi CA, có thể để trống
key_pathĐường dẫn tệp khóa riêng

pfx

Phù hợp với các dịch vụ cần gói chứng chỉ tệp đơn (PKCS#12):

TrườngMô tả
pathĐường dẫn tệp PFX
key_passMật khẩu khóa riêng PFX, có thể để trống khi dịch vụ đích không yêu cầu mật khẩu

jks

Phù hợp với các tình huống Java keystore như Tomcat:

TrườngMô tả
pathĐường dẫn tệp JKS
aliasBí danh mục nhập chứng chỉ. Khi trống, chỉ có thể tự động suy ra khi keystore chỉ có một mục nhập
key_passMật khẩu khóa riêng của mục
store_passMật khẩu keystore

iis

Áp dụng cho ràng buộc HTTPS của Windows IIS:

TrườngMô tả
nameTên site IIS, có thể xem trong IIS Manager
addrIP ràng buộc HTTPS, * nghĩa là tất cả IP
portCổng ràng buộc HTTPS
domainTên miền ràng buộc HTTPS, có thể để trống khi không có tên miền SNI

Điểm cài đặt IIS do script tích hợp của clmBot tự động hoàn tất việc nhập chứng chỉ và cập nhật ràng buộc, thường không cần cấu hình script.

exchange

Áp dụng cho chứng chỉ dịch vụ Windows Exchange:

TrườngMô tả
servicesDanh sách tên dịch vụ Exchange cần kích hoạt chứng chỉ mới, chẳng hạn như ["IIS", "SMTP", "POP", "IMAP"]

Hướng dẫn thực thi tập lệnh

before_scriptafter_script được thực thi theo thứ tự sau khi cập nhật chứng chỉ:

  1. Sao lưu tệp chứng chỉ cục bộ (tạo bản sao lưu .bak kèm dấu thời gian).
  2. Thực thi before_script; nếu thất bại sẽ hủy bỏ việc cập nhật tại điểm cài đặt hiện tại.
  3. Ghi chứng chỉ mới.
  4. Thực thi after_script để tải lại hoặc khởi động lại dịch vụ trung gian.

Khi chứng chỉ cục bộ đã là mới nhất, toàn bộ quá trình cập nhật (bao gồm cả script) sẽ bị bỏ qua; nếu cần buộc thực thi after_script, bạn có thể dùng tham số --force-after.

Script được thực thi trên Linux thông qua bash và trên Windows thông qua powershell.exe -NoProfile -ExecutionPolicy Bypass.

Biến mẫu script

Khi viết before_script / after_script, bạn có thể sử dụng các biến mẫu sau, clmBot sẽ thay thế bằng giá trị thực tế trước khi thực thi.

Biến chung:

BiếnMô tả
{{ .ID }}Điểm cài đặt id
{{ .SUB_CODE }}Số đăng ký chứng chỉ
{{ .OS_TYPE }}Loại hệ điều hành(windows / linux / darwin
{{ .IS_WINDOWS }}Có phải Windows không(true / false
{{ .IS_LINUX }}Có phải Linux (true / false)
{{ .TIMESTAMP }}Dấu thời gian hiện tại (giây)
{{ .DATETIME }}Ngày giờ hiện tại (định dạng 2006-01-02 15:04:05)
{{ .DATE }}Ngày hiện tại (định dạng 2006-01-02)
{{ .LATEST }}Chứng chỉ đã là mới nhất chưa (true / false). Khi dùng cùng --force-after, có thể dùng trong script để phán đoán bỏ qua thao tác tiếp theo

Biến được cung cấp theo định dạng chứng chỉ:

Định dạngBiếnMô tả
pem{{ .PEM_CERT_PATH }}Đường dẫn tệp chứng chỉ trang web
pem{{ .PEM_CA_PATH }}Đường dẫn tệp chuỗi CA
pem{{ .PEM_KEY_PATH }}Đường dẫn tệp khóa riêng
pfx{{ .PFX_PATH }}Đường dẫn tệp PFX
pfx{{ .PFX_KEY_PASS }}Mật khẩu khóa riêng PFX
jks{{ .JKS_PATH }}Đường dẫn tệp JKS
jks{{ .JKS_ALIAS }}Bí danh mục chứng chỉ
jks{{ .JKS_KEY_PASS }}Mật khẩu khóa riêng của mục
jks{{ .JKS_STORE_PASS }}Mật khẩu keystore
iis{{ .IIS_SITE_NAME }}Tên trang IIS
iis{{ .IIS_IPADDR }}IP liên kết HTTPS
iis{{ .IIS_PORT }}Cổng liên kết HTTPS
iis{{ .IIS_DOMAIN }}HTTPS liên kết tên miền
exchange{{ .EXCHANGE_SERVICES }}Danh sách tên dịch vụ Exchange (phân tách bằng dấu phẩy)

Khuyến nghị bảo mật

  • config.yaml chứa thông tin xác thực truy cập và đường dẫn khóa riêng, vui lòng giới hạn quyền truy cập tệp ở mức chỉ tài khoản chạy mới có thể đọc/ghi (ví dụ: chmod 600 config.yaml).
  • AccessSecret sau khi lưu sẽ được lưu trữ dưới dạng mã hóa, nhưng vẫn nên tránh sao chép tệp cấu hình đến những vị trí không đáng tin cậy.
  • Sử dụng tài khoản chạy chuyên dụng cho clmBot và cấp quyền theo nguyên tắc quyền hạn tối thiểu, xem Yêu cầu quyền khi chạy.