ルート認証(CA) と中間認証(CA)の作成メモ

Windows10にインストールしたXampp7.2.1 のApache/conf内にあるopenssl.cnfを使って中間認証局(CA)を構築した。多くのサイトでの方法はPerl(CA.pl)からが大半の上、少し古い情報なので、Linux等で作成したサイトの情報から試した。又、このルート認証局(CA)の作成方法で幾つもの中間認証局(CA)ができる。

【環境の準備】
[認証局と中間(CA)を構築する準備]

*任意のディレクトリとフォルダーを作成する。
例)ssl —>rootca —>newcerts, private
     —>interca—>newcerts, private

#rootca&interca
$ >copy > index.txt ➡ 又はエディター
$ >copy 01 > serial
$ >copy 00 > crlnumber
$ openssl.cnf ➡ rootca専用、interca専用

#rootca/openssl.cnf
HOME = ./ssl/rootca
dir = $HOME
certificate = $dir/rootca.crt
private_key = $dir/private/rootca.key
x509_extensions = v3_ca ←61行目
default_days = 3650
policy = policy_anything #match
#authorityKeyIdentifier = keyid:always,issuer:always ←239行目

#interca/openssl.cnf
HOME = ./ssl/interca
dir = $HOME
certificate = $dir/interca.crt
private_key = $dir/private/interca.key
policy = policy_anything #match
[ usr_cert ]
basicConstraints=CA:TRUE ➡ 中間(CA)の1回のみ(#FALSE)
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer
*intercaのopenssl.cnfはプライベート認証局(CA)で使用したConf をコピーして修正した。

【ルート認証局の証明書作成】

$ openssl req -config ssl/rootca/openssl.cnf  -new -keyout ssl/rootca/private/rootca.key -days 3650 -out ssl/rootca/rootca.csr
$ openssl x509 -req -signkey ssl/rootca/private/rootca.key -in ssl/rootca/rootca.csr -out ssl/rootca/rootca.crt

【中間認証局の証明書作成】

$ openssl req -config ssl/interca/openssl.cnf -new -keyout ssl/ssl/private/interca.key -out ssl/interca/interca.csr
注)$openssl req -text -noout -in ssl/interca/interca.csrで「CA:TRUE」を確認
$ openssl ca -config ssl/rootca/openssl.cnf -out ssl/interca/interca.crt -infiles ssl/interca/interca.csr

*中間(CA)のX509v3 Basic Constraintsが「CA:False」になるので、あえてopenssl.cnf のusr_cert「CA:FalseをTRUE」に替えて作成した。

Server 証明書の作成

*サーバ証明書の作成は2段階証明書の作成方法とほぼ同じだがCAの証明は「中間(CA)から署名」を貰うことになる。

Client 証明書の作成

*クライアント証明書 の作成は、2段階証明書の作成方法とほぼ同じだがCAの証明は「中間(CA)から署名」を貰うことになる。

注意点:
*httpd-ssl.conf内の追記と修正が必要。
SSLCARevocationFile x:\ssl/interca/crl.pem ➡ 修正
SSLCertificateChainFile “x:/ssl/interca/interca.crt” ➡ 190行目辺りに追記
SSLCARevocationCheck chain ➡  213行目辺りの(#)外す

クライアント証明書でBasic認証替わりになるけど、プライベート認証局(CA)から作成した証明書のように個人(本人)用の設定にならない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)