サイトをFreeBSD12+python3.7+Bottleで作り直すメモ(13)-クライアント証明書認証
- 公開日: 2022/09/08(木) 07:38[JST]
- 更新日: 2022/09/08(木) 07:38[JST]
リバースプロキシの投稿でも触れたが、サブドメインで自分専用webアプリを立ち上げた。自分専用かつ自宅外からもアクセスできるようにする必要があるため認証できないと困る。漏洩してさほど困るようなコンテンツでもないが、やっぱり漏れるとちょっとは恥ずかしいのでパスワード認証ではなく証明書を使った認証を行いたい。
ということで、Qiita @white_aspara25氏による「nginx で クライアント認証したい!- ベーシック認証の置き換え」を参考に設定を行った。
証明書の準備
リバースプロキシを動かしているサーバにて、 openssl にて証明書を作成する。作成方法はFreeBSDでWPA2-EAP認証 と全く同じ(サーバ証明書は多分いらない)。
そして、作ったクライアント証明書を認証させたい端末(自分の場合はスマホ)に転送し、インストールする。
リバースプロキシ(nginx)の設定
/usr/local/etc/nginx/nginx.conf を編集する。認証を行うドメインのエントリの中に以下の2行を追加する。
ssl_verify_client on; ssl_client_certificate ルート証明書のフルパス;
そして、nginxの再起動を行う。 # service nginx restart