徒然なるままに プログラミングメモや日々の生活などつれづれとつづっていくblog

2020年10月27日

OpnSense + Nginx + Let’s Encryptでルーター兼ロードバランサーを構築する。(Let’s Encrypt編)

Filed under: Let's Encrypt,Linux,Nginx,Opnsense — ranpei @ 12:24 AM

DNSによる名前解決ができることを前提として解説します。

◆Let’s Encryptプラグインをインストール

「os-acme-client」の「+」ボタンを押下してプラグインをインストールします。

◆Nginxの設定

Let’s Encryptがドメイン確認時にアクセスするパスを設定します。

URL Patternに「/.well-known/acme-challenge/」
File System Rootに「/var/etc/acme-client/challenges/.well-known/acme-challenge/」
Locationsに上記のLocationを追加
Enable Let’s Encrypt Plugin Supportのチェックを外す(ここ重要)

保存したら右下の更新ボタン(設定反映)を行ってから、右上の更新ボタンを押下して設定を反映させてください。

(どうも右下のボタンを押さないと設定がうまく反映されないことがあるようです)

◆Let’s Encryptプラグインの設定

「サービス>Let’s Encrypt>設定」でプラグインを有効化

「サービス>Let’s Encrypt>アカウント」 でアカウントを登録

「サービス>Let’s Encrypt>検証メソッド」で検証メソッドを登録

「サービス>Let’s Encrypt>検証メソッド」 で証明書を取得するドメインを設定

ドメインの設定が済んだら右メニューの更新ボタンを押下して証明書を発行・更新します。

しばらくたってACMEステータスが「OK」となれば証明書の取得完了です。

◆ Nginxの設定(証明書設定)

Http Serverからドメインに証明書を設定して再起動します。

(HTTP Onlyにチェックを入れると強制的にhttps接続にリダイレクトするようになります)

Httpsで接続して証明書がきちんと設定されていることを確認しましょう。

◆補足

さて、なぜNginx側で「 Enable Let’s Encrypt Plugin Support 」のチェックを外したか疑問に思う方もいるかもしれませんので補足です。

実はNginxでは上記チェックが入っていると「http://127.0.0.1:43580//.well-known/acme-challenge/」へのリバースプロキシが自動的に設定されます。

この「43580」ポートに関しては 「サービス>Let’s Encrypt>設定」 で詳細モードをONにすると設定項目が現れますので、管理用WebGUIのポートに変更してファイアウォールの設定をキチンとできればLocationの設定なしでも証明書の発行は行えると思われます。

ただ残念ながら私のうまくいかなかったため管理用WebGUIが参照するAliasパスを強制的に参照するように設定して、無理やりLet’s Encryptのドメイン確認が通るようにしました。

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress