別記事で3階層のCAを構築したので,その中間CAからWebサーバ用の証明書を発行します。3階層のCA構築の記事はこちら。秘密鍵を自分で作成し,中間CAに署名のリクエストを出します。
秘密鍵の生成
サーバ証明書用に”servercert”というディレクトリを作成しておきます。このディレクトリについては作らなくても,何の問題もありません。
鍵は2048bitのRSAの鍵を作ります。
$ cd /usr/local/ssl/servercert $ sudo openssl genrsa -aes256 -out serverkey.pem 2048
証明書リクエスト
鍵を生成したら,CSR(Certificate Signing Request)を作成して,中間CAに証明書生成を要求します。中間CAはCSRから証明書を発行します。
CSRのファイル名はnewreq.pemにします。
上で生成した鍵のパスワードやCSRファイルのためのDN情報などを入力していきます。
$ sudo openssl req -new -key serverkey.pem -out newreq.pem
中間CAに証明書を要求するコマンドは次の通り。中間CAなので,CA_Issuing.plを利用します。CA_Issuing.plについては,別記事(3階層のCAを構築)で作成してありますので,そちらを参照してください。
$ sudo /usr/local/ssl/misc/CA_Issuing.pl -sign
証明書の変換
PEM形式の証明書をDER形式に変換しておきます。
$ sudo openssl x509 -inform pem -in newcert.pem -outform der -out servercert.cer
この証明書をWebサーバインポートすれば,SSL通信ができる(はず)です。未検証(笑)。