クライアント認証、SSLサーバー構築に必要な証明書が揃ったところでいよいよSSLに関する設定を行います。Apacheの設定ファイルは /etc/httpd/conf/httpd.conf になります。
先ずはSSL全般に関する設定です。(Apache 1.3)
<VirtualHost _default_:443>
httpsを有効にするにはこのタグ内を修正します。
</VirtualHost>
< VirtualHost _default_: 443>
## General setup for the virtual host
## https://www.cuz.homeip.net で接続した際の
## ドキュメントルートを指定します。
DocumentRoot "/hda/httpd/html"
## 従来のと合わせてあります。secure.cuz.homeip.net
## でも可能です。
## DNSの設定は必要ありません。 HTTP と HTTPS では基本的に
## ポートが異るのでバーチャルホストによる対応と言うことになります。
ServerName www.cuz.homeip.net
## SSL Engine Switch:ApacheのSSL機能を有効にします。
SSLEngine on
## Server Certificate:サーバー証明書を指定します。
SSLCertificateFile /etc/httpd/ssl/cert.pem
## Server Private Key:上記サーバー証明書のプライベートキー
## を指定します。 含まれるのであれば指定する必要は
## ありません。
SSLCertificateKeyFile /etc/httpd/ssl/privkey.pem
## Server Certificate Chain:
SSLCertificateChainFile /var/ssl/CA/cacert.pem
## Certificate Authority (CA):
## CAの公開鍵のパスを指定 CAによるクライアント認証を行うには
## 以下の設定が必須となります。
SSLCACertificatePath /etc/httpd/ssl
## このcacet.pem はCA立ち上げ時にCAディレクトリに
## 生成されています。sendmailの時と同様、サーバーの
## SSLカレントディレクトリにコピーし、それを指定しています。
SSLCACertificateFile /etc/httpd/ssl/cacert.pem
## Certificate Revocation Lists (CRL):
## クライアント(ユーザー)証明書のパスと証明書を指定します。
SSLCARevocationPath /etc/httpd/ssl/users
SSLCARevocationFile /etc/httpd/ssl/users/web_korogi_cert.pem
## クライアント認証の方式 ##
## Client Authentication (Type):
## クライアント認証を行うのであれば、以下を有効にします。
## 今回の目的はこれです.
SSLVerifyClient require
SSLVerifyClient 1 ※
< /VirtualHost>
※SSLVerifyClient
0 - 認証を必要としないとき
1 - クライアントが合法的な証明書を提示するかもしれない。もし認証が提示されれば、サーバーに格納している証明書は合法的な認証局が発行したものでなければならない。
2 - クライアントが合法的な証明書を提示しなければならない
3 - クライアントが合法的な証明書を提示するかもしれない、しかし、サーバーに格納している証明書は、合法的な認証局(CA)が発行したものでなくてもよい
補足 Apache2 では SSLVerifyClient に仕様変更があります。
MAC版IEでSSL接続を行ったところ、CA公開鍵をインストールしているにも関わらず、セキュリティエラーが発生するようになりました。立ち上げ当初は問題なかったのですが・・・
既にhttpd.confには対策がされていましたが、複数行に渡っている指定を以下のように一行に置き換えることで解決しました。
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
↓以下に変更
複数行に渡っている指定を以下のように一行に置き換えることで解決しました。
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0