前提・実現したいこと
Windows環境にnginxをインストールしてアクセス制限の実験を行っています。
クライアント証明書(testX)を持つユーザーからのアクセスは許可し、特定のクライアント証明書(test1)を持つユーザーのアクセスを制限したいと思っております。
発生している問題・エラーメッセージ
本来アクセスを弾くべきのクライアント証明書(test1)を持つユーザーもアクセスが出来てしまっております。
該当のソースコード
nginx.conf
1server{ 2 if($ssl_client_s_dn = "CN=test1@xxx.com"){ 3 return 403; 4 } 5 if($client_client_s_dn !~ "CN=test.*@xxx.com"){ 6 return 403; 7 } 8}
試したこと
ググったところ、nginxのif文は特殊な動きをするとの記載があったので、下記の通り書き換えて実行してみましたが、結果は変わりませんでした。
nginx.conf
1server{ 2 set $test1 0; 3 set $test2 0; 4 if($ssl_client_s_dn = "CN=test1@xxx.com"){ 5 set $test1 1; 6 } 7 if($client_client_s_dn !~ "CN=test.*@xxx.com"){ 8 set $test2 1; 9 } 10 if($test1){ 11 return 403; 12 } 13 if($test2){ 14 return 403; 15 } 16}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/29 07:44
2019/05/29 08:21 編集