Posted at

Nginx版:mkcertを使ってローカル環境でもDockerでも楽々SSL


背景

mkcertを使ってローカル環境でもDockerでも楽々SSLはApacheだったので、Nginx版です。


mkcertのインストール

mkcertのインストールはmkcertを使ってローカル環境でもDockerでも楽々SSLと一緒です。

brew install mkcert

mkcert -install
mkcert localhost 127.0.0.1

localhost+1.pem localhost+1-key.pemが生成される。

./cert-key/localhost.pem

./cert-key/localhost-key.pem

に置いておきましょう。

名称は何でもいいですが、

ここではlocalhost+1.pemからlocalhost.pem

localhost+1-key.pemからlocalhost-key.pem

に名称を変えています。


docker-compose.ymlの記述


docker-compose.yml

version: "3"

services:
nginx:
build: ./
ports:
- 80:80
- 443:443


Dockerfileの記述

FROM nginx:alpine

COPY nginx.conf /etc/nginx/nginx.conf
ADD ./cert-key/localhost.pem /etc/certs/localhost.pem
ADD ./cert-key/localhost-key.pem /etc/certs/localhost-key.pem


nginx.confの記述

events{

}
http{
server {
listen 80 default;
server_name localhost;
}
server {
listen 443 ssl;
ssl_certificate /etc/certs/localhost.pem;
ssl_certificate_key /etc/certs/localhost-key.pem;
}
}

eventsがないと

no "events" section in configurationとエラーがでます。


docker-compose の起動

docker-compose build

docker-compose up -d

でdocker-composeを起動する。

localhostにアクセスしてhttpsでも表示できれば成功。

スクリーンショット 2019-07-29 13.55.34.png