クライアント認証をディレクトリ単位でかけるメモ[インターネットなこと]
(2016-04-27 12:39:26) by shinoda


Apache におけるクライアント認証の話。

/etc/httpd/conf.d/ssl.conf 内に下記記述を追加することで(多分ディフォルトでコメントになっているはずなので、コメントマークを外してやる)、クライアント認証が可能になる。

SSLVerifyClient require
SSLVerifyDepth  10

・・・が、これだと、サイト全体にクライアント認証がかかってしまう。

証明書を持っていないユーザがアクセスすると、(Google Chrome の場合)「このサイトは安全に接続できません www.exsample.jp から無効な応答が送信されました。 ERR_SSL_PROTOCOL ERROR」というエラー画面が出て、どのコンテンツにもアクセスできない。

ある特定のディレクトリだけを会員サイトのような扱いで「クライアント証明が必要」とするには、この設定を再度コメントに戻す。

#SSLVerifyClient require
#SSLVerifyDepth  10

これで、誰でも(自己認証局の場合「この接続ではプライバシーが保護されません」という脅し文句が表示されるけど(^^; ) https サイトを見ることができるようになる。

そして、ディレクトリー単位で制限をかけたい場合は、<Directory> ディレクティブに設定を行う。

たとえば、https://www.exsample.jp/crt_test1/ のみクライアント認証を行いたい場合は、ssl.conf 内に

<Directory "/var/www/html/crt_test1">

    SSLRequireSSL
    SSLVerifyClient require
    SSLVerifyDepth  10

</Directory>

のようなディレクティブを追加する。

これで、

https://www.exsample.jp/crt_test1/

にはアクセスできるが、

https://www.exsample.jp/crt_test1/

では、上に書いたように「無効な応答が送信されました」のエラーとなる。

コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8