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-PORTALNginxの設定ファイルはポート80番の設定だけが用意してあれば、https,443にも対応で可能になります。
以上になります