Ví dụ cấu hình
Trang này cung cấp các ví dụ cấu hình hoàn chỉnh cho các tổ hợp "middleware × định dạng chứng chỉ" thường gặp. Mỗi ví dụ gồm hai phần: cấu hình gắn chứng chỉ phía dịch vụ và cấu hình điểm cài đặt config.yaml của clmBot.
Đường dẫn trong các ví dụ đều là giá trị minh họa, vui lòng thay thế bằng đường dẫn trong môi trường thực tế. Ý nghĩa các trường xem tại Tham khảo cấu hình.
nginx + PEM
Cấu hình chứng chỉ phía dịch vụ
Trong cấu hình site nginx, gắn chứng chỉ thông qua ssl_certificate và ssl_certificate_key:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
location / {
root /usr/share/nginx/html;
}
}
nginx yêu cầu tệp ssl_certificate phải chứa chuỗi chứng chỉ hoàn chỉnh (chứng chỉ trang web + chứng chỉ trung gian). Do đó, trong điểm cài đặt clmBot, bạn nên để trống ca_path, clmBot sẽ hợp nhất chuỗi chứng chỉ hoàn chỉnh và ghi vào cert_path.
Cấu hình điểm cài đặt clmBot
servers:
- id: nginx_pem
sub_code: <证书订阅号>
format:
pem:
cert_path: /etc/nginx/ssl/example.com.crt
ca_path: ""
key_path: /etc/nginx/ssl/example.com.key
after_script: |
nginx -t && nginx -s reload
Apache + PEM
Cấu hình chứng chỉ phía máy chủ
Trong cấu hình site Apache, gắn chứng chỉ thông qua các chỉ thị như SSLCertificateFile:
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/example.com.crt
SSLCertificateKeyFile /etc/httpd/ssl/example.com.key
SSLCertificateChainFile /etc/httpd/ssl/example.com.ca.crt
</VirtualHost>
- Apache 2.4.8 trở lên cũng có thể hợp nhất trực tiếp chuỗi chứng chỉ vào tệp
SSLCertificateFile, khi đóSSLCertificateChainFilecó thể được bỏ qua, vàca_pathtrong điểm cài đặt clmBot sẽ được để trống tương ứng. - Tên dịch vụ được chọn theo bản phân phối: RHEL/CentOS là
httpd, Debian/Ubuntu làapache2.
Cấu hình điểm cài đặt clmBot
servers:
- id: apache_pem
sub_code: <证书订阅号>
format:
pem:
cert_path: /etc/httpd/ssl/example.com.crt
ca_path: /etc/httpd/ssl/example.com.ca.crt
key_path: /etc/httpd/ssl/example.com.key
after_script: |
apachectl configtest && systemctl restart httpd.service
Tomcat + JKS
Cấu hình chứng chỉ phía máy chủ
Tomcat 8.5 trở lên gắn JKS keystore thông qua conf/server.xml trong SSLHostConfig:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/opt/tomcat/conf/example.com.jks"
certificateKeystorePassword="<keystore密码>"
certificateKeyAlias="tomcat"
certificateKeyPassword="<私钥密码>"
type="RSA" />
</SSLHostConfig>
</Connector>
Cấu hình điểm cài đặt clmBot
servers:
- id: tomcat_jks
sub_code: <证书订阅号>
format:
jks:
path: /opt/tomcat/conf/example.com.jks
alias: tomcat
key_pass: <私钥密码>
store_pass: <keystore密码>
after_script: |
export JAVA_HOME=/usr/java
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh
Nếu Tomcat được quản lý bởi systemd, after_script có thể đơn giản hóa thành systemctl restart <tomcat 服务名>.
Tomcat + PEM
Cấu hình chứng chỉ phía máy chủ
Tomcat 8.5 trở lên hỗ trợ sử dụng trực tiếp tệp PEM, không cần chuyển đổi sang JKS:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeyFile="/opt/tomcat/ssl/example.com.key"
certificateFile="/opt/tomcat/ssl/example.com.crt"
certificateChainFile="/opt/tomcat/ssl/example.com.ca.crt"
type="RSA" />
</SSLHostConfig>
</Connector>
Cấu hình điểm cài đặt clmBot
servers:
- id: tomcat_pem
sub_code: <证书订阅号>
format:
pem:
cert_path: /opt/tomcat/ssl/example.com.crt
ca_path: /opt/tomcat/ssl/example.com.ca.crt
key_path: /opt/tomcat/ssl/example.com.key
after_script: |
export JAVA_HOME=/usr/java
/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh
Dịch vụ tùy chỉnh + PFX
Phù hợp với các dịch vụ sử dụng chứng chỉ dưới dạng gói chứng chỉ tệp đơn (PKCS#12), trong after_script có thể sử dụng biến mẫu script:
servers:
- id: app_pfx
sub_code: <证书订阅号>
format:
pfx:
path: /opt/app/ssl/example.com.pfx
key_pass: <PFX密码>
after_script: |
echo "certificate updated at {{ .DATETIME }}"
/usr/bin/systemctl restart example-app.service
Xác minh
Sau khi hoàn tất cấu hình, bạn có thể kích hoạt cập nhật thủ công một lần để xác minh toàn bộ quy trình:
./clm-bot-linux-amd64 update-certificate
Sau khi xác nhận tệp chứng chỉ đã được cập nhật, dịch vụ đã được tải lại và chứng chỉ mới đã có hiệu lực, hãy cấu hình cập nhật tự động theo phương thức cập nhật chứng chỉ.