Skip to main content

ตัวอย่างการกำหนดค่า

หน้านี้ให้ตัวอย่างการกำหนดค่าครบถ้วนสำหรับชุดค่าผสม «มิดเดิลแวร์ × รูปแบบใบรับรอง» ที่พบบ่อย แต่ละตัวอย่างประกอบด้วยสองส่วน ได้แก่ การกำหนดค่าการติดตั้งใบรับรองฝั่งบริการ และการกำหนดค่าจุดติดตั้ง config.yaml ของ clmBot

เส้นทางในตัวอย่างเป็นค่าสาธิตเท่านั้น โปรดแทนที่ด้วยเส้นทางในสภาพแวดล้อมจริง ความหมายของฟิลด์ดูได้ที่ ข้อมูลอ้างอิงการกำหนดค่า

nginx + PEM

การกำหนดค่าใบรับรองฝั่งบริการ

ในการกำหนดค่าไซต์ nginx ให้ติดตั้งใบรับรองผ่าน ssl_certificate และ 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 ต้องการให้ไฟล์ ssl_certificate มีเชนใบรับรองแบบสมบูรณ์ (ใบรับรองเว็บไซต์ + ใบรับรองกลาง) ดังนั้นในจุดติดตั้ง clmBot แนะนำให้เว้น ca_path ว่างไว้ clmBot จะรวมเชนใบรับรองแบบสมบูรณ์แล้วเขียนลงใน cert_path

การกำหนดค่าจุดติดตั้ง 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

การกำหนดค่าใบรับรองฝั่งเซิร์ฟเวอร์

ในการกำหนดค่าไซต์ Apache ให้เมานต์ใบรับรองผ่านคำสั่ง เช่น 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 ขึ้นไปสามารถรวม certificate chain ลงในไฟล์ SSLCertificateFile ได้โดยตรง ในกรณีนี้ SSLCertificateChainFile สามารถละเว้นได้ และ ca_path ในจุดติดตั้ง clmBot ให้เว้นว่างไว้ตามนั้น
  • เลือกชื่อบริการตาม distribution: RHEL/CentOS ใช้ httpd ส่วน Debian/Ubuntu ใช้ apache2

การกำหนดค่าจุดติดตั้ง 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

การกำหนดค่าใบรับรองฝั่งเซิร์ฟเวอร์

Tomcat เวอร์ชัน 8.5 ขึ้นไปใน conf/server.xml ผ่าน SSLHostConfig เมาท์ JKS keystore:

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

การกำหนดค่าจุดติดตั้ง 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
ข้อมูล

หาก Tomcat ถูกจัดการโดย systemd after_script สามารถลดรูปเป็น systemctl restart <tomcat 服务名> ได้

Tomcat + PEM

การกำหนดค่าใบรับรองฝั่งเซิร์ฟเวอร์

Tomcat เวอร์ชัน 8.5 ขึ้นไปรองรับการใช้ไฟล์ PEM โดยตรง โดยไม่ต้องแปลงเป็น 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>

การกำหนดค่าจุดติดตั้ง 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

บริการที่กำหนดเอง + PFX

เหมาะสำหรับบริการที่ใช้ใบรับรองในรูปแบบไฟล์แพ็กเกจเดียว (PKCS#12) ภายใน after_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

การตรวจสอบ

หลังจากกำหนดค่าเสร็จสิ้น คุณสามารถเรียกใช้การอัปเดตด้วยตนเองหนึ่งครั้งเพื่อตรวจสอบกระบวนการทั้งหมด:

./clm-bot-linux-amd64 update-certificate

ยืนยันว่าไฟล์ใบรับรองได้รับการอัปเดตแล้ว บริการได้รีโหลดแล้ว และใบรับรองใหม่มีผลใช้งานแล้ว จากนั้นจึงกำหนดค่าการอัปเดตอัตโนมัติตาม วิธีการอัปเดตใบรับรอง