目的
Nginx Proxy Manager(以下NPM)は便利ですが、Let’s Encrypt前提となっています。
今回はLet's Encrypt以外のACME対応CAから証明書を自動取得する設定をご紹介します。
- 内部ネットワークでもNPMをHTTPS化したい
-
internalやlanドメインのサーバ証明書を管理したい
こういうケース向けです。
対象の方
- Nginx Proxy Managerを構築し、プロキシも試した方
- ACME対応の認証局(私の場合はstep-ca)を構築済み
- ACMEタイプのProvisionerを作成済みで、certbotからの動作確認ができている方
利用したDockerイメージとバージョン
- smallstep/step-ca:0.30.2
- jc21/nginx-proxy-manager:2.14.0
結論
NPMコンテナの/etc/letsencrypt.iniにて、独自CAのACMEエンドポイントを以下のように指定
server = https://<独自CAのアドレス>/acme/acme/directory # step-caの場合
no-verify-ssl = true # ルート証明書を信頼していない場合は追記(あくまで開発用とすること!)
あとはNPMコンテナを再起動し、Nginx Proxy ManagerのCertificates→Add Certificate→Let's Encrypt via HTTPでACMEサーバから証明書を取得できます。
dockerfileやcompose.yamlへの組み込みは上手くやってください。
感想
ChatGPTが回答してくれなかったり、日本語の情報が少なかったため記事にしました。
しかしNPMとしては若干強引なやり方なので、正式な機能としてNPMに実装されるとよいですね。
もしそれまでに当方で問題が発生すれば記事に追記します!
ご覧いただきありがとうございました!
参考
