ローカルのテスト環境 | SSL/TLS
Ref.
https://qiita.com/k_kind/items/b87777efa3d29dcc4467
登場人物
- mkcert(ローカル開発用SSL証明書発行ツール)
- キーチェーンアクセス(Mac > アプリケーション > ユーティリティ > キーチェーンアクセス)
手順
mkcertをインストール (brew install mkcert)- ローカル専用認証局を作成してキーチェーンに登録 (
mkcert -install) - 作成した認証局で署名されたサーバー証明書と秘密鍵を作成 (
mkcert ...) - Apache設定ファイルに作成した証明書と秘密鍵を指定
- hostsファイルを変更してWebサーバーを再起動
1. mkcertをインストール
$ brew install mkcert
2. ローカル専用認証局を作成してキーチェーンに登録
$ mkcert -install
/Users/<ユーザー名>/Library/Application Support/mkcert/ に以下のファイルが作成されます(パスは mkcert -CAROOT で確認可能)。
rootCA-key.pem:ローカルCAの秘密鍵rootCA.pem:ローカルCAのルート証明書
実行後、macOSのキーチェーンアクセス(「ログイン」または「システム」キーチェーン)にルート証明書 (rootCA.pem) が信頼された証明書として自動登録されます。
3. 認証局に署名されたサーバー証明書と秘密鍵を作成
開発で利用するドメインを指定して証明書を発行します(サブドメインや localhost も同時に指定可能です)。
$ mkcert example.com "*.example.com" localhost 127.0.0.1
以下のファイルが生成されます。
example.com+3.pem(またはexample.com.pem):サーバー証明書example.com+3-key.pem(またはexample.com-key.pem):秘密鍵
4. Apache設定ファイルにサーバー証明書と秘密鍵を指定
生成した証明書ファイルを適切なディレクトリ(例: /etc/ssl/certs/, /etc/ssl/private/ など)に配置し、Apacheの設定ファイル(例: /etc/apache2/sites-available/example.com.conf)に指定します。
<VirtualHost *:443>
ServerName example.com
DocumentRoot /var/www/html/example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.com.pem
SSLCertificateKeyFile /etc/ssl/private/example.com-key.pem
</VirtualHost>
5. hostsファイルを変更 & Webサーバーの再起動
/etc/hosts にローカルループバックを設定します。
# /etc/hosts
127.0.0.1 example.com
設定を有効化し、Apacheを再起動します。
$ sudo a2ensite example.com.conf
$ sudo apachectl configtest
$ sudo apachectl restart
https://example.com にアクセスし、ブラウザで警告が出ずにSSL通信が行われていることを確認します。