apache2+SSL(client認証) on WhiteBox Linux

投稿日:

WhiteBox Linuxで、SSL対応(client認証付き)httpdを設定する方法。

(1)サーバ用の認証鍵を作成する。

# /etc/httpd/conf
# make server.key
# make server.csr
# make server.crt

(2)認証局を立てる。
認証局自身の鍵と証明書を作成

# mkdir private_CA
# openssl req -new -x509 -key ca.key -out ca.crt
# touch index
# echo ''01'' > serial
# mkdir certs

# openssl req -new -key ../server.key -out server.csr
# openssl ca -config ca.config -out server-ca.crt -infiles server.csr

作成した証明書をチェックする。


# openssl verify -CAfile ca.crt server-ca.crt

(3)Windowsに渡すルート認証局情報を作成


# openssl x509 -in ca.crt -out ca.cer -outform DER

(4)作成したクライアント証明書をprivate認証局で証明書を発行してもらう

まずは、コンフィグレーションファイルを作成。/etc/httpd/conf/private_CA/ca.config

[ ca ]
default_ca              = CA_own
[ CA_own ]
dir                     = .
certs                   = $dir
new_certs_dir           = $dir/certs
database                = $dir/index
serial                  = $dir/serial
RANDFILE                = $dir/rand
certificate             = $dir/ca.crt
private_key             = $dir/ca.key
default_days            = 365
default_crl_days        = 365
default_md              = md5
preserve                = no
policy                  = policy_anything
[ policy_anything ]
countryName             = optional
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional
# cd private_CA/
# openssl ca -config ca.config -out ../client_auth/client-ca.crt -in
files ../client_auth/client.csr
# cat client.key client-ca.crt | openssl pkcs12 -export -out client
.p12 -name "client key"

ここで作成されたclient.p12をWindowsのブラウザに喰わせる。