クライアント証明書による認証
CAを作る
cp /usr/lib/ssl/misc/CA.sh .
cp /usr/lib/ssl/openssl.cnf .
SSLEAY_CONFIG="-config ./openssl.cnf" DAYS=3650 CATOP=myCA ./CA.sh -newca
openssl.cnf
dir = ./myCA
countryName_default = JP
stateOrProvinceName_default = .
0.organizationName_default = .
サーバ証明書を作る
openssl genrsa -rand /var/log/maillog -out server.key 2048
openssl req -config ./openssl.cnf -new -key server.key -out server.csr
openssl ca -config ./openssl.cnf -in server.csr -out server.crt
クライアント証明書を作る
openssl genrsa -rand /var/log/messages -out client.key 1024
openssl req -config ./openssl.cnf -new -days 3650 -key client.key -out client.csr
openssl ca -config ./openssl.cnf -in client.csr -out client.crt
openssl pkcs12 -export -inkey client.key -in client.crt -out client.p12 -name "Client Certificate"
Apacheの設定を変更する
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
SSLCACertificatePath /etc/apache2/ssl/ca
SSLCACertificateFile /etc/apache2/ssl/ca/cacert.pem
SSLVerifyClient require
SSLVerifyDepth 10
ルート証明書をブラウザへインストールする
http://www.jcsinc.co.jp/support/vista7_root.html