📘
リバプロnginxでクライアント証明書認証
リバプロnginxでクライアント証明書認証
- nginxをリバプロとして使っている構成で認証をかけたいことがある
- BASIC認証などはパスワード総当たり掛けられると厳しかったりするし、パスワード覚えているのがめんどくさくなる
- その点クライアント認証ができるといろいろ便利なのでやる
設定
- nginxのconfでこうする
server{
listen 80;
server_name test.mydomain.com;
ssl_client_certificate /etc/nginx/ssl/ca.crt; # クライアント認証のサーバ側証明書
ssl_verify_client optional; # client認証するかのパラメータ optionalは任意 結果は $ssl_client_verifyに入る
location / {
if ($ssl_client_verify != SUCCESS) {
return 403; # 認証が通らなければ403が返る
}
proxy_pass http://リバプロ先:port番号;
}
}
-
クライアント認証用の鍵作成などはこの辺を参考に
-
pkcs形式にしたらwindows環境ならp12ファイルをダブルクリック実行するとインポートの設定が出るのでそのままOKをしていって設定するとブラウザに登録される
-
一回ブラウザを全部閉じて、開きなおして目的のサイトに接続しようとすると鍵を確認される。指定して通れればOK。
- p12ファイルをインポートしていない別の端末などからアクセスして403Forbiddenが返ってくることを確認すれば認証が機能していることがわかる
Discussion