NginxをSSL付きで運用する時にhttps-portal (Docker+Let’s encrypt)がサイコーに気に入りました
https-portalとは・・・NginxとLet’s encryptを内包したDockerコンテナです。
Dockerで構築したWebサーバを簡単かつ自動でhttps化(暗号化,443)してくれる素晴らしいコンテナになります。ほんと素晴らしいです。
httpsがデフォルトの昨今、暗号化に対応する手間が格段に省けて大助かりです。設定の手間とか更新とか考えたらかなり楽になりました。
テスト中はオレオレ証明書でも良いし、本番環境ではLet’s encriptから証明書を自動で取得・更新してくれます。
導入してみましたが、この簡単さは素晴らしいのひと言です。
(もちろんDockerを使うことや、設定の慣れで多少の時間は取られますが・・・)
簡単に導入できる上に、証明書取得・更新もやってもらえるとは。
素晴らしすぎます。
https-portalという名前でネットワークを作っているというイメージでしょうか。この部分は適宜環境に合わせてください。
後ろにあるnetworks: 以下で、別のdocker-composeのコンテナと通信できるようになります。
(name: https-portal <– この部分は環境に合わせる)
以上になります
Dockerで構築したWebサーバを簡単かつ自動でhttps化(暗号化,443)してくれる素晴らしいコンテナになります。ほんと素晴らしいです。
httpsがデフォルトの昨今、暗号化に対応する手間が格段に省けて大助かりです。設定の手間とか更新とか考えたらかなり楽になりました。
テスト中はオレオレ証明書でも良いし、本番環境ではLet’s encriptから証明書を自動で取得・更新してくれます。
導入してみましたが、この簡単さは素晴らしいのひと言です。
(もちろんDockerを使うことや、設定の慣れで多少の時間は取られますが・・・)
簡単に導入できる上に、証明書取得・更新もやってもらえるとは。
素晴らしすぎます。
以下が導入の参考になるかと思います
ついでに既存WebサイトのLet’s encryptの証明書を無効にする手順のリンクも示します。設定例
よくhttps-portalとWebアプリなどを同じdocker-composeで管理しているのはよく見かけるのですが、私の場合は別にしたかったので、以下のように設定しました。複数あるDocker Composeのコンテナ間でネットワーク接続
別なdocker-composeのコンテナで通信可能にするために、以下のコマンドを実行します。https-portalという名前でネットワークを作っているというイメージでしょうか。この部分は適宜環境に合わせてください。
$ docker network create --driver bridge https-portal
Webアプリのdocker-compose.ymlの設定
こんな感じで作ってみました。後ろにあるnetworks: 以下で、別のdocker-composeのコンテナと通信できるようになります。
(name: https-portal <– この部分は環境に合わせる)
WordPress+Nginxのdocker-compose.yml
version: '3'
services:
www-mamecan-nginx:
image: nginx:stable
container_name: www-mamecan-nginx
expose:
- 80
- 443
environment:
VIRTUAL_HOST: mamecan.org,www.mamecan.org
VIRTUAL_HOST_ALIAS: mamecan
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/conf.d:/etc/nginx/conf.d
- ./nginx/log:/var/log/nginx
- ./www:/var/www/html
restart: always
networks:
default:
external:
name: https-portal
https-portalのdocker-compose.yml
version: '3'
services:
https-portal:
image: steveltn/https-portal:1
ports:
- '80:80'
- '443:443'
environment:
DOMAINS: >-
mamecan.org -> http://www-mamecan-nginx
,www.mamecan.org -> http://www-mamecan-nginx
STAGE: 'local' # Don't use production until staging works
volumes:
- https-portal-data:/var/lib/https-portal
restart: always
networks:
default:
external:
name: https-portal
volumes:
https-portal-data: # Recommended, to avoid re-signing when upgrading HTTPS-PORTAL
Nginxの設定ファイルはポート80番の設定だけが用意してあれば、https,443にも対応で可能になります。以上になります






