メインコンテンツまでスキップ

設定例

本ページでは、一般的な「ミドルウェア × 証明書形式」の組み合わせにおける完全な設定例を提供します。各例には、サービス側の証明書マウント設定と、clmBot の config.yaml インストールポイント設定の 2 つの部分が含まれます。

例に記載されているパスはすべてデモ用の値です。実際の環境のパスに置き換えてください。フィールドの意味については 設定リファレンス を参照してください。

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

証明書ファイルが更新され、サービスが再読み込みされて新しい証明書が有効になっていることを確認した後、証明書の更新方法に従って自動更新を設定します。