目的
特定の証明書がインストールされているPCのブラウザのみアクセス許可する。
その検証を行いたい。
この記事のやり方だと、ブラウザでアクセスした際、証明書エラーの画面が表示される。(信頼されていないサーバー証明書を使うので)これも合わせて回避したい場合は、こちらの記事を実施する。その場合、この記事は見なくていい。
やり方
nginxの用意
証明書を用意して実行
Nginxでクライアント証明書による認証を行う - Qiita
Nginxでクライアント証明書による認証を行う作成するファイルたちca.crt → nginx側の設定で利用ca.keyuser.crtuser.csruser.keyuser.pfx…
こちらを参考に実施。
しかしながら何点かひっかかったので、以下に引っかかった点を記録する。
nginxの再起動ができない。nginx: [emerg] “server” directive is not allowed here in
nginx.confの編集を終え、
service nginx restart
しようとすると、
nginx: [emerg] "server" directive is not allowed here in
のメッセージが出力されてしまう。nginx再起動不可。
調べると、
とのことじゃった。
↓
No such file or directory:fopen(‘/etc/nginx/server_certificates/server.crt’,’r’)
その後、以下のえらーに遭遇じゃ。
Restarting nginx: nginx2022/11/01 08:53:23 [emerg] 590#590: cannot load certificate "/etc/nginx/server_certificates/server.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/server_certificates/server.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: [emerg] cannot load certificate "/etc/nginx/server_certificates/server.crt": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/nginx/server_certificates/server.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed
server_certificates/server.crt
が存在しないことが原因じゃて。
↓
server.crtを設置する。
さっき、Qiita「1-2. CA 証明書を作成」の項で作ったやつ。
↓
cd ../client_certificates/
pwd
/etc/nginx/client_certificates
↓
cp ca.crt ../server_certificates/server.crt
mvじゃなくてcpじゃぞ。
この移動元のフォルダにもca.crtが必要じゃぞ。
X509_check_private_key:key values mismatch) ~ /etc/nginx/nginx.conf test failed
Restarting nginx: nginx2022/11/01 10:19:33 [emerg] 607#607: SSL_CTX_use_PrivateKey("/etc/nginx/server_certificates/server.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: [emerg] SSL_CTX_use_PrivateKey("/etc/nginx/server_certificates/server.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /etc/nginx/nginx.conf test failed
当然ながら秘密鍵も無いと怒られたな。
一個前の項と同様の手順でこちらも設置じゃ。
pwd
/etc/nginx/client_certificates
↓
cp ca.key ../server_certificates/server.key
「この画面ではプライバシーが保護されません」画面は、表示される
この接続ではプライバシーが保護されません
っていう画面は、表示されるはず。
「詳細設定」ボタンをクリックするんじゃぁ。(ちゃんと自分の検証ページであることを確認してね。)
この画面を出したくない場合は、こちらの記事で!
コメント