Nginx on DockerでHTTPS接続できるローカルサーバーを用意する

秘密鍵と自己署名した証明書を作成。

$ openssl req -x509 -nodes -new -keyout server.key -out server.crt -days 365

Dockerfile を用意。

FROM nginx:1.13-alpine
COPY default.conf /etc/nginx/conf.d/default.conf
COPY server.crt /etc/nginx/server.crt
COPY server.key /etc/nginx/server.key

Nginx設定ファイル default.conf を用意。

server {
    listen 80;
    server_name localhost;

    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name localhost;

    ssl on;
    ssl_certificate /etc/nginx/server.crt;
    ssl_certificate_key /etc/nginx/server.key;

    error_log /var/log/nginx/my_project_error.log;
    access_log /var/log/nginx/my_projcet_access.log;

    location / {
        alias /usr/share/nginx/html/;
    }
}

Dockerイメージの作成とコンテナの起動。

$ docker build -t simple-nginx .
$ docker run --rm --name my-nginx -d -p 80:80 -p 443:443 simple-nginx:latest

127.0.0.1 へアクセスでOK。