クライアント認証を設定したサーバーに、特定のIPアドレスからは認証なしでアクセスしたい場合、以下のようにディレクティブを書くと簡単に設定できる。
SSLCACertificateFile /etc/pki/CA/cacert.pem
SSLCARevocationFile /etc/pki/CA/crl.pem
SSLVerifyDepth 10
<If "%{REMOTE_ADDR} !='192.168.0.1'">
SSLVerifyClient require
</If>
これで、リモートアドレスが 192.168.0.1 以外の場合は、SSLVerifyClient require が発動する。
SSLVerifyClient を optional にして、require ディレクティブで条件分岐させる手もあるけれど、たぶん上記のやり方のほうが直感的にわかりやすいと思う。
SSLVerifyDepth ディレクティブは、If の内側であろうと外側であろうとちゃんと動くので、外に出しておけば良いでしょう。
なお、証明書や失効ファイル、IPアドレスは、実態に合わせて変更してください。
コメント