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

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_certificatessl_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;
}
}
Thông tin

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>
Thông tin
  • 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 đó SSLCertificateChainFile có thể được bỏ qua, và ca_path trong đ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
Thông tin

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ỉ.