Apache + mkcertでクライアント(証明書)認証を試行する
環境
手順
mkcert(CA)をインストールする
$ brew install mkcert $ mkcert -install $ ls "`mkcert -CAROOT`" rootCA-key.pem rootCA.pem
クライアント認証を要求するように設定する
- CA証明書をWebサーバーに配置する。
- Apacheに設定を追加する。
$ sudo vi /path/to/ssl.conf <VirtualHost *:443> …略 SSLCACertificateFile /etc/pki/tls/certs/rootCA.pem SSLVerifyClient require </VirtualHost> $ sudo systemctl restart httpd
クライアント証明書をキーチェーンに登録する
- 証明書を発行する。
$ mkcert -client foo Created a new certificate valid for the following names 📜 - "foo" The certificate is at "./foo-client.pem" and the key at "./foo-client-key.pem" ✅ It will expire on 22 July 2024 🗓 $ openssl pkcs12 -export -inkey foo-client-key.pem -in foo-client.pem -out foo-client.pfx
- 証明書(foo-client.pfx)を開いて、キーチェーンに登録する。
- キーチェーンに登録された証明書のコンテキストメニューから、"情報を見る"を選択し、"この証明書を使用するとき"を"常に信頼"するに変更する。
- キーチェーンに登録された証明書のコンテキストメニューから、"新規識別プリファレンス"を選択し、対象のURLを入力する。
当該URLにアクセスする
ブラウザにて当該URLにアクセスできればOK。