やりたいこと
ローカルにhttpsサーバーを立てて開発したい
解決方法
mkcertを使えばTLS検証をパスするようにできます
https://github.com/FiloSottile/mkcert
httpsで接続するとOSまたはブラウザの信頼ストアに証明書が保管されて、証明書の有効期間まではそれが使われます。mkcertは、ローカルの信頼ストアにルート証明書~サーバー証明書までを一式保存して、ローカル環境で正規の検証が通るようにする仕組みです。信頼ストアはOSまたはブラウザにありますので、開発者自身の環境のみTLS検証を通るようになります。mkcertの証明書は期限が10年あるので、期限切れを意識せずに使えるようになっています
自己署名証明書などの場合、TLS検証が通らない場合に応答を拒否するシステムもありますので、そうしたシステムの開発を行う際には同様の仕組みが必須になると思います
使い方
インストールする
chocolateyでインストールできます
choco install mkcert
ローカルCAを作成する
ルートCAの役割を担うmkcertのローカルCAを作成します
新しくサーバー証明書を作るとき、ここで作ったローカルCAがルートCAとして利用されます
mkcert -install
サーバー証明書を発行する
URLを指定してサーバー証明書を発行します
作成したサーバー証明書の署名をmkcertのルート証明書で検証できるので
正規のTLS検証が通るようになります
localhostの場合
mkcert localhost 127.0.0.1 ::1
localhost.com-key.pem
localhost.com.pem
example.comの場合
hostsでリダイレクトするようにしておいて、example.comなどのURLについてのサーバー証明書を発行することも出来ます。WordPressのように固定URLで動くようなシステムの場合はこの方法が必要になります
mkcert example.com
127.0.0.1 example.com
example.com-key.pem
example.com.pem