手動 acme.sh ツール

O's World

Cloudflare DNS の証明書コマンドと Nginx の証明書設定をローカルで生成します。

acme.sh をインストールし、Cloudflare DNS を設定したサーバーの同じシェルで、手順 1〜4 を順に実行してください。再読み込みコマンドは systemd 管理の Nginx を想定しています。

1 · Cloudflare トークン

読み取り専用テンプレートです。export の前に空白を 1 つ保持します。実行前にターミナルでトークンを入力してください。

 export CF_Token=""

2 · 証明書の発行

acme.sh --issue \
  --dns dns_cf \
  -d example.com \
  --keylength ec-256

3 · ディレクトリの作成

mkdir -p /etc/nginx/ssl/example.com

4 · 証明書のインストール

acme.sh --install-cert -d example.com --ecc \
  --key-file /etc/nginx/ssl/example.com/privkey.pem \
  --fullchain-file /etc/nginx/ssl/example.com/fullchain.pem \
  --reloadcmd "systemctl reload nginx"

Nginx 証明書設定

ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com/privkey.pem;

よく使うパスとコマンド

証明書のパスは入力に連動します。一般的な Linux パスはインストール方法で異なります。必要な権限でサーバー上で実行してください。

任意:DH パラメーターは DHE 暗号用で、ECDHE には不要です。ファイル生成後に ssl_dhparam を設定してください。生成には時間がかかる場合があります。既存ファイルはスキップします。

秘密鍵ファイル

/etc/nginx/ssl/example.com/privkey.pem

証明書と中間証明書チェーン

/etc/nginx/ssl/example.com/fullchain.pem

DH パラメーターファイル

/etc/nginx/ssl/dhparam.pem

DH パラメーターを生成(2048 ビット)

mkdir -p /etc/nginx/ssl/ && if [ ! -e /etc/nginx/ssl/dhparam.pem ]; then
  openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
fi

Nginx DH パラメーター設定

ssl_dhparam /etc/nginx/ssl/dhparam.pem;

証明書の主体・発行者・有効期間を確認

openssl x509 -in /etc/nginx/ssl/example.com/fullchain.pem -noout -subject -issuer -dates

証明書が 30 日以内に期限切れになるか確認

openssl x509 -in /etc/nginx/ssl/example.com/fullchain.pem -noout -checkend 2592000

Nginx メイン設定(一般的なパス)

/etc/nginx/nginx.conf

acme.sh 作業ディレクトリ(既定)

~/.acme.sh/

Nginx 設定を検証

nginx -t

Nginx を検証して再読み込み(systemd)

nginx -t && systemctl reload nginx