20
22

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化・SSL通信をできるようにする

Last updated at Posted at 2020-01-07

#はじめに
conohaのvpsでサービス運用を始めようと思います.
ただ,SSL可に意外と苦戦したのでまとめておきます.

#状況
・ubuntu+docker
・ドメイン取得済み
・Golangのbeegoでwebサーバーを立てている.

httpsでの接続をするためには,SSL証明書が必要.
オレオレ証明書はローカル運用でしか,利用できない.
letsencryptをUbuntu16.04 + Nginxで使ってみただと,docker内に作用することができない.
個人運営サイトのSSLをDockerで良い感じに設定するだと,コンテナが2つあって難しそう.

#結果
https-portalなるコンテナを利用することで,解決できました!!
#####メリット
・既存のコンテナサービスが簡単にSSL可できる
・わかりやすい
・自動で証明書を更新してくれる.
・証明書の切替ができる(オレオレ/production)

https-portalで既存のdocker環境をhttps化
既存環境に手を加えずにサクッとHTTPS化する (NAT配下でもok)
【7】SteveLTN/HTTPS-PORTALを使ってLet's Encryptで全自動SSL対応を行う(GCP(GCE),Rails,Nginxリバースプロキシ,Docker)

#実装

docker-compose.yml
version: '2'
services:
  db:
    build:
      context: ./MySQL
    env_file:
      - prod.env
    container_name: go_db
    ports:
      - "3306:3306"
    tty: true
    restart: always
    volumes:
      - ./MySQL/mysql_init:/docker-entrypoint-initdb.d
      - ./MySQL/mysql_data:/var/lib/mysql
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --skip-character-set-client-handshake --lower_case_table_names=1
  app:
    build:
      context: ./Go
      dockerfile: Dockerfile.prod
    volumes:
      - "./Go:/go/src/app"
    container_name: go_app
    env_file:
      - prod.env
    ports:
      - "8080:8080"
    tty: true
    restart: always
    depends_on:
      - db
  https-portal:
    image: steveltn/https-portal:1
    container_name: https_portal
    ports:
      - "80:80"
      - "443:443"
    tty: true
    restart: always
    volumes:
      - ./Certs/:/var/lib/https-portal/
    environment:
      DOMAINS: 'domain〇〇 -> http://app:8080'
      STAGE: "production"
      # FORCE_RENEW: 'true'
    links:
      - app

この方法だと,ローカルの開発環境もサラッとSSL適用できるので,(・∀・)イイネ!!

20
22
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
20
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?