普段はSSLで使うサーバーのみとなりつつありますので、Dockerでの開発環境も今更ながらSSL化させたのでメモ
windows環境でのインストール方法
Chocolateyのインストール
cmd上にて以下を入力
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
これで完了です。以下は確認。
c:\ > choco list -l
Chocolatey v0.10.15
chocolatey 0.10.15
1 packages installed.
mkcertをインストールし証明書作成
mkcertをインストールします。–installは最初だけ行えばOK。
c:\ > choco install mkcert
c:\ > mkcert --install
サーバー証明書を発行
c:\ > mkcert localhost
これで、カレントディレクトリに証明書が作成されます
c:\ > ls
localhost-key.pem localhost.pem
Docker設定
あとは、普通に使えば良いのですが一応メモをまとめます
# Dockerfile
FROM nginx
ADD nginx.conf /etc/nginx/nginx.conf
ADD fastcgi.conf /etc/nginx/fastcgi.conf
ADD server.conf /etc/nginx/conf.d/default.conf
ADD localhost.pem /etc/ssl/certs/localhost.pem
ADD localhost-key.pem /etc/ssl/certs/localhost-key.pem
# server.conf
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
ssl_certificate /etc/ssl/certs/localhost.crt.pem;
ssl_certificate_key /etc/ssl/certs/localhost.key.pem;
# docker-compose.yml 一部抜粋
version: '2'
services:
nginx:
build: ./nginx
ports:
- "80:80"
- "443:443"
volumes:
- ../:/var/www/html
links:
- web
web:
build: ./php-fpm
volumes:
- ../:/var/www/html
links:
- mysql
env_file: .env
コメント