OpenSSLのCAコマンドを使ったサーバ証明書クライアント証明書の作成
前提
- OpenSSLのCAコマンドを使ったCA構築を参考にして、CAを構築する。
- 今回は以下のような構成でCAがすでに構築されている事にする。
- /tmp/pki/myCA CA証明書やサーバ証明書やクライアント証明書等が格納されているディレクトリ
- /tmp/pki/openssl.cnf opensslコマンドの設定ファイル
- /tmp/pki/CA CAコマンド
サーバ証明書(クライアント証明書)の署名要求を作成
DAYS="-days 3650" ./CA -newreq
- 以下のファイルが作成される。
- newkey.pem サーバ秘密鍵
- newreq.pem サーバ証明書の署名要求
署名要求(CSR)をCA証明書で署名してサーバ証明書(クライアント証明書)を作成
SSLEAY_CONFIG="-config ./openssl.cnf" ./CA -sign
- 上のコマンドを実行すると証明書の詳細が表示されて、署名するか?と問われるのでYESを選ぶ。
- すると、以下のファイルが作成される。
- newcert.pem サーバ証明書(クライント証明書)
- myCA/newcerts/F1234XXXXXXF1.pem サーバ証明書(クライント証明書)上のnewcert.pemと同じ内容
- さらに、この内容をコミットするか?と問われるのでYESを選ぶ。
- すると、以下のファイルが更新される。
- myCA/index.txt データベースファイル
- myCA/serial シリアルファイル
- (※ 証明書の有効期限を変更するにはopenssl.cnfのdefalut_daysを変更する。)
秘密鍵からパスフレーズを削除
mv newkey.pem newkey.pem.tmp
openssl rsa -in newkey.pem.tmp -out newkey.pem
rm newkey.pem.tmp
証明書のリネーム
mv newcert.pem server01.crt
mv newkey.pem server01.key
mv newreq.pem server01.csr
mv newcert.pem client01.crt
mv newkey.pem client01.key
mv newreq.pem client01.csr
クライアント秘密鍵とクライアント証明書を結合してpkcs12形式でexportする
openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12
- 必要に応じて、client.keyのパスフレーズを入力する。
- 必要に応じて、client.p12をインポートする際のパスフレーズを入力する。