5
12

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.

Dockerを使ってHTTPS環境を構築

Posted at

Dockerを使ってHTTPS環境を構築

Dockerを使ってHTTPS環境を構築出来ないかと調べていたらHTTPS-PORTALという便利なものがあったので、試しにローカルでHTTPS接続できる環境を構築してみました。

HTTPS-PORTALとは?

HTTPS-PORTAL is a fully automated HTTPS server powered by Nginx, Let's Encrypt and Docker. By using it, you can run any existing web application over HTTPS, with only one extra line of configuration.

The SSL certificates are obtained, and renewed from Let's Encrypt automatically.

要するに自動でHTTPSサーバを作ってくれるDockerコンテナです。

前提

VirtualBox(仮想OS)に以下の環境を構築。

  • OS: CentOS7
  • Docker: v19.03.10
  • Docker-compose: v1.25.25

やること

ゲストOSのdocker上に起動したMetabaseにホストOSのブラウザからHTTPSで接続する
※今回はサンプルとしてMetabase(データ分析用のWebアプリ)を使用する

手順

  1. dockerをインストールする ※関連リンクを参照
  2. docker-composeをインストールする ※関連リンクを参照
  3. docker-compose.ymlを作成する
  4. docker-composeでコンテナを起動する
  5. VirtualBoxのネットワーク設定を行う
  6. ブラウザからHTTPSで接続する

docker-compose.ymlを作成する

CentOS7上の適当なディレクトリに_docker-compose.yml_を作成してください。
※今回は /var/lib/docker 直下にファイル作成しました

docker-compose.yml
https-portal:
  image: steveltn/https-portal:1
  ports:
    - '80:80'
    - '443:443'
  links:
    - metabase
  restart: always
  environment:
    STAGE: local
    DOMAINS: 'localhost -> http://metabase:3000'
metabase:
  image: metabase/metabase
  volumes:
    - ~/metabase-data:/metabase-data
  environment:
    - MB_DB_FILE=/metabase-data/metabase.db

https-portalを経由してmetabaseに接続するようなイメージです。
設定内容は以下の情報を元にしています。

docker-composeでコンテナを起動する

_dokcer-compose.yml_のあるディレクトリにて以下のコマンドを実行してください。

# docker-composeでコンテナを起動
docker-compose up -d

以下のコマンドでhttps-portalとmetabaseのコンテナが起動していることを確認できます。

# dockerの起動しているコンテナを確認
docker ps

image.png

コンテナを停止したい場合は以下のコマンドです。

# docker-composeでコンテナを停止
docker-compose stop

VirtualBoxのネットワーク設定を行う

ホストOSのブラウザからゲストOSのWebアプリに接続する為にVirtualBoxの設定をします。
ネットワーク設定にて、NATでホストOSの80, 443ポートをゲストOSの80, 443にフォワード設定します。

image.png
image.png

ブラウザからHTTPSで接続する

ブラウザにて https://localhost を表示する
image.png
※オレオレ証明書なので上記の警告画面がでます。

以下のMetabaseの初期画面が表示されていれば成功です。
image.png

あとがき

今回はお試しということでローカル用に環境構築してみました。
(未検証ですが)設定を切り替えればLet's Encryptから取得した証明書を使うようなので社内ツールなどをHTTPS化したい場合に手軽に出来て良さそうです。

関連リンク

以下、環境構築の際に参考にしたサイトです

5
12
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
5
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?