クライアント認証とは、鍵がなければ見れないコンテンツを作成する場合に使います。
パスワード等を使用して開くサイト等よりも強力で、作成した鍵を持っていない第三者からコンテンツを守る為に使用されます。 また、サーバーで鍵を簡単に無効にすることが出来る為、何かあった時にすぐに対応できます。
1.
作業用フォルダを作成する。[AAAA]
認証フォルダ作成
/etc/ssl/AAAA
/etc/sslから、AAAAを作成
mkdir AAAA
作成したAAAAにて以下の作業を行う
2.
秘密鍵作成
openssl genrsa -out private.pem 1024
3.
署名要求書作成(Appachサーバ起動時にパスワードを聞かれないように、パスワード無しで作成する。Common NameをCA認証局の情報と一致させること)
openssl req -new -key private.pem -out request.pem
Country Name (2 letter code) [JP]:
State or Province Name (full name) [Osaka]:
Locality Name (eg, city) []:Osaka
Organization Name (eg, company) [xxkaisya]:
Organizational Unit Name (eg, section) []:soft1
Common Name (eg, YOUR name) []:Taro
Email Address []:
4.
署名要求書をCA認証局により署名する(デフォルトポリシーにて署名 10年分)
openssl ca -days 3650 -policy policy_anything -out ./cert-ca.pem -infiles request.pem
5.
PKCS12形式作成 ブラウザにて登録する為に必要
openssl pkcs12 -export -inkey private.pem -in cert-ca.pem -out client.p12
6.
Appacheサーバ設定
Listen 443
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile "/etc/ssl/AAAA/cert-ca.pem"
SSLCertificateKeyFile "/etc/ssl/AAAA/private.pem"
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCACertificatePath "/etc/ssl/CA2"
SSLCACertificateFile "/etc/ssl/CA2/cacert.pem" <-CA認証局作成にて作成した証明書
</VirtualHost>
おまけ.
証明書の無効化
openssl ca -revoke /etc/ssl/AAAA/cert-ca.pem