NginxをSSL付きで運用する時にhttps-portal (Docker+Let’s encrypt)がサイコーに気に入りました

Dockerロゴ
https-portalとは・・・NginxとLet’s encryptを内包したDockerコンテナです。
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にも対応で可能になります。
以上になります

鹿児島県の出水市という所に住んでいまして、インターネット周辺で色々活動して行きたいと思ってるところです。 Webサイト作ったり、サーバ設定したり、プログラムしたりしている、釣りと木工好きなMacユーザです。 今はデータサイエンスに興味を持って競馬AI予想を頑張ってます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください