7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DEPARTUREAdvent Calendar 2020

Day 5

https-portalでお手軽https化

Posted at

概要

https-portalは簡単にhttpsサーバーを用意できるツールです。
docker-composeにserviceを定義するだけで、NginxとLet's Encryptを使ったhttpsサーバーを立てることができます。

localhostのhttps化

まずはlocalhostをhttps化してみます。
検証のためにpythonでサーバーを立てます。

docker-compose.yml
version: "3.7"

services:
  https:
    image: steveltn/https-portal:1
    ports:
      - "80:80"
      - "443:443"
    environment:
      DOMAINS: localhost -> http://python:8000
      STAGE: local
  python:
    image: python:alpine
    command: python -m http.server
    working_dir: /

これだけでpythonで立てたサーバーをhttps化できました。
https://localhost にアクセスすると確認できます。
ただし、自己署名証明書なので警告は出ます。

公開中のwebサイトをhttps化

次に公開中のwebサイトをhttps化してみます。
と言ってもlocalhostをhttps化した時とだいたい同じで、環境変数を少し書き換えるだけです。
なお、Let's Encrypt'sからtest用の証明書を発行するので時間がかかります。

docker-compose.yml
    environment:
      DOMAINS: YOUR_DOMAIN -> http://python:8000
      STAGE: staging

stagingで動作確認が出来たらproductionに変更します。
これでブラウザで警告が表示されなくなり、公開中のサイトをhttps化できました。

注意点

いきなりSTAGEをproductionで動作確認をしていると、Let's Encrypt'sのレート制限に引っかかってしまうことがあるらしいです。

7
6
3

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
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?