본문으로 건너뛰기

구성 예시

본 페이지는 일반적인 ‘미들웨어 × 인증서 형식’ 조합의 전체 구성 예시를 제공합니다. 각 예시에는 서비스 측 인증서 마운트 구성과 clmBot의 config.yaml 설치 지점 구성 두 부분이 포함됩니다.

예시의 경로는 모두 데모 값이므로 실제 환경의 경로로 바꾸십시오. 필드 의미는 구성 참조를 참조하십시오.

nginx + PEM

서비스 측 인증서 구성

nginx 사이트 구성에서 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;
}
}
정보

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 이상 버전에서는 인증서 체인을 SSLCertificateFile 파일에 직접 병합할 수도 있습니다. 이 경우 SSLCertificateChainFile는 생략할 수 있으며, clmBot 설치 지점의 ca_path는 그에 따라 비워 둡니다.
  • 서비스 이름은 배포판에 따라 선택합니다. 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 키 저장소를 마운트합니다.

<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 이상 버전은 JKS 변환 없이 PEM 파일을 직접 사용할 수 있도록 지원합니다:

<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

인증서 파일이 업데이트되고, 서비스가 다시 로드되었으며, 새 인증서가 적용된 것을 확인한 후 인증서 업데이트 방법에 따라 자동 업데이트를 구성하세요.