44
34

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 5 years have passed since last update.

letsencrypt-nginx-proxy-companionを使って複数ドメイン名に無料SSL証明書を適用する

Posted at

初めに

Docker Compose等で

単一のコンテナへ以下の様な複数ドメイン名に対してSSL証明書を適用する方法を調査した。


example.com
www.example.com

#結論

利用ドメイン名を指定する環境変数をカンマ区切りで記述すると適用してくれる。2

  • 自作サービス側のdocker-compose.yml例
version: '3.3'
services:
  myapp:
    image: my-app
    environment:
      VIRTUAL_HOST: example.com,www.example.com # ← カンマ区切り指定
      LETSENCRYPT_HOST: example.com,www.example.com # ← カンマ区切り指定
      LETSENCRYPT_EMAIL: mail@example.com

networks:
  default:
    external:
      name: shared
  • nginx側のdocker-compose.yml例
version: "2"
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./certs:/etc/nginx/certs:ro
      - /etc/nginx/vhost.d
      - /usr/share/nginx/html
    restart: always
    networks:
      - shared
        
  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: letsencrypt
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./certs:/etc/nginx/certs:rw
    volumes_from:
      - nginx-proxy
    restart: always
    networks:
      - shared

networks:
  shared:
    external: true

#実行例

##事前準備

上記の様にdocker-compose.ymlを分離している場合は事前にDocker networkを作成し同じネットワークを利用する様に指定しておく必要が有る。

docker network create --driver bridge shared

##起動

 nginx側、自作サービスの両方を起動する

docker-compose up -d

##結果

指定した保存ディレクトリ内に以下の様にドメイン名別の証明書が生成される。
どちらのドメイン名でもSSL接続可能となる。

example.com.chain.pem
example.com.crt
example.com.dhparam.pem
example.com.key

www.example.com.chain.pem
www.example.com.crt
www.example.com.dhparam.pem
www.example.com.key
  1. 前提としてDNS設定済みの独自ドメインが必要です。

  2. 利用するドメイン名を事前に名前解決設定しておく必要有り。

44
34
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
44
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?