* OpenSSLのCAコマンドを使ったCA構築 [#n2e59462]
** CA構築の準備 [#f9ac15cb]
mkdir /tmp/pki
cd /tmp/pki/
cp /etc/pki/tls/misc/CA .
cp /etc/pki/tls/openssl.cnf .
- CA(CA作成スクリプト)やopenssl.cnfの設置場所はOSによって異なるので、予め探しておく。
- なお、CAスクリプトを使わずにopensslコマンドだけでもCA構築はできるが、opensslのコマンド体系、設定はとても複雑なため、理解が大変だと思う。
- 今回は作業を/tmp/pki以下で行う。
** CA用openssl.cnfの設定 [#g10e00f0]
*** CATOPの設定 [#j30872a2]
vi openssl.cnf
[ CA_default ]
dir = /tmp/pki/myCA
- 今回は作業を/tmp/pkiで行い、CAを/tmp/pki/myCAに作成する。
- OS標準では/etc/pkiがルートで、CAは/etc/pki/CAに作成される。
*** その他の設定 [#v124918b]
vi openssl.cnf
default_days = 3650
default_md = sha256
default_bits = 2048
- default_daysは任意だが今回は期間3650日にする。
- default_mdとdefault_bitsは上のようにsha256、2048ビットにする。
** CA証明書・秘密鍵の作成 [#if175212]
*** CADAYSの設定 [#t3c74b7b]
vi CA
CADAYS="-days 3650"
- CA証明書の有効期限を変更するためCAコマンドを編集してCADAYS変数の値を修正する。
*** 認証局のコモンネーム他DN情報の確認 [#y1f9afc7]
countryName = JP
stateOrProvinceName = Tokyo
organizationName = My Company Co.,Ltd.
commonName = My CA
emailAddress = foo@example.com
- 認証局のDN情報をあらかじめ決めておく。
- 他にパスフレーズも決めておく。
*** CA作成スクリプトの実行 [#u595de39]
SSLEAY_CONFIG="-config ./openssl.cnf" CATOP=/tmp/pki/myCA ./CA -newca
*** CA作成スクリプトによって作成されたファイル [#i1891ddc]
- CA証明書 /tmp/pki/myCA/cacert.pem
- CA秘密鍵 /tmp/pki/myCA/private/cakey.pem
myCA/index.txt.attr
myCA/private/cakey.pem
myCA/newcerts/XXX.pem
myCA/certs
myCA/careq.pem
myCA/crl
myCA/cacert.pem
myCA/index.txt
myCA/index.txt.old
myCA/serial
** CA証明書の内容確認 [#pd1397b9]
openssl x509 -in ./myCA/cacert.pem -text
** CA秘密鍵の内容確認 [#jcd4d0f4]
openssl rsa -in ./myCA/private/cakey.pem -text
** CA証明書をPEM形式からDER形式(IE等ブラウザ用)に変換 [#j50ae98e]
openssl x509 -in cacert.pem -outform der -out cacert.der
** 参考 [#n02396f8]
*** CAコマンド [#rbec2e7a]
- http://fc-lab.com/network/server/pki/openssl.html
- http://tenj.jp/modules/smartsection/item.php?itemid=139
*** opensslコマンド [#f82d0a54]
- http://ash.jp/sec/openssl.htm