LoginSignup
1
3

More than 1 year has passed since last update.

Dockerでwebサイトを簡単にhttps対応させる

Posted at

はじめに

Webサーバのhttps対応、やっていますか?なんか面倒くさそうとか、証明書の取得をいちいち自分でやったりしていませんか?
そんな人のためにうってつけのものがあります。https-portalです。これを使えば、びっくりするくらい簡単にwebサーバをhttps対応させることができます。今回はそのhttps-portalの使い方を説明していきます。

https-portalとは

webサーバを糸も簡単にhttps対応してくれる優れものです。証明書の取得もDockerコンテナ内で勝手にやってくれるので便利です。
中にはnginxとlet’s encryptも含んでいます。nginxが入っているということは当然ながらリバースプロキシとしても使えます。

導入の仕方

とりあえず適当なフォルダを作って、中にdocker-compose.ymlを作りましょう

mkdir hoge
cd hoge
sudo vim docker-compose.yml

中には以下の内容を記述。

version: "3"

services:
  https-portal: #https化。プロキシサーバー
    image: steveltn/https-portal:1
    container_name: web_https-portal
    ports:
      - 80:80
      - 443:443
    networks:
      - frontend
    restart: always
    volumes:
      - ./certs:/var/lib/https-portal
    environment:
# 本番運用するときはコメントアウトを外す
#      STAGE: 'production'
#ここにドメイン追加で捌ける
      DOMAINS: localhost -> http://web01:80
      STAGE: local

#Apacheを使う
  web01:
    image: httpd:2.4
    container_name: website
    networks:
      - frontend
      - webnet
    restart: always

networks:
  frontend:
  webnet:

volumeを設定していなかったら毎回証明書を発行してしまうので設定しておく。
DOMAINSのところで、localhostへのアクセスはApacheが起動しているweb01へ行くように設定。
apacheはデフォルトでは80番ポートで待ち構えているので80番ポートに転送するようにします。

ドメイン毎にアクセス先を分けたかったら、カンマで同じような記述をDOMAINSに追記してやればOKです。
次にSTAGEについてですが、

  • ローカル環境(オレオレ証明書):local
  • 独自ドメインはもっているが本番ではない(オレオレ証明書):staging
  • 本番(実際に証明書を発行):production

という感じです。localとstagingはオレオレ証明書になるので、アクセスするときに警告がでます。十分にこれらでテストをしてからproductionでちゃんとした証明書を取得するようにしましょう。

docker-compose up -d

コンテナを立ち上げて、上の例だとhttps://localhostにアクセスすればApacheに接続できます。
立ち上げた直後はつながらない可能性があるので、ちょっと時間を空けます。

最後に

https-portalを使えば、面倒な手続きから解放されます。よいhttpsライフを・・・

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3