★ OpenSSL Class ★ * Chapter 03: サーバー証明書の作成 *
< サーバー証明書とは >
今度はサーバーの証明書を作成してみます。
このサーバー証明書がいわゆるSSLに使われます。
サーバー証明書の作成も、CA証明書作成のときの手順と同じです。
< 秘密鍵の作成 >
作業ディレクトリを、前回CA証明書を作成したディレクトリ『 /home/.ca/ 』とします。
シリアルナンバーファイルも正しく配置されているものとします。

サーバーの秘密鍵はCAの秘密鍵と同様に以下のコマンドで作成できます。

openssl genrsa -rand [RANDOM FILE] -out [SERVER KEY] [NUMBITS]

[RANDOM FILE] には乱数生成に使用するファイルを指定します。
なるべく変化が激しく、再現性のないファイルが望ましいです。
各種ログファイルなんかが適当だと思います。

[SERVER KEY] には作成するCA秘密鍵のファイル名を指定します。
何でも良いですが、本講座では『 server.key 』とします。

[NUMBITS] には鍵のビット数を指定します。
『 1024 』が無難です。

コマンドを実行すると、すぐに『 server.key 』が作成されます。
これは秘密鍵ですので、厳重に管理してください。
< 署名要求の作成 >
署名要求の作成もCAの署名要求と同様で、以下のコマンドによって作成できます。

openssl req -new -key [SERVER KEY] -out [SERVER CSR]

[SERVER KEY] には先程作成したserver.keyを指定します。

[SERVER CSR] には作成する書名要求ファイルの名前を指定します。
署名要求のファイル名は何でも良いですが、本講座では『 server.csr 』とします。
このコマンドを実行するといくつか質問されますので、順に答えていきます。
質問への回答はCAの署名要求作成時と同じですが、
『 Common Name (eg, your name or your server's hostname) []: 』へはドメインをお答えください。
< CAによる署名 >
最後にCAによる署名を行います。
これによってこのサーバー証明書がCAによって保障されることになります。

サーバーの署名要求に対してCAの署名をするには以下のコマンドを使用します。

openssl x509 -req -days [LIMIT] -CA [CA CRT] -CAkey [CA KEY] -in [SERVER CSR] -out [SERVER CRT]

[LIMIT] にはこの証明書の有効期限を日数で指定します。

[CA CRT] にはca.crtを指定します。

[CA KEY] にはca.keyを指定します。

[SERVER CSR] にはserver.csrを指定します。

[SERVER CRT] には作成するサーバー証明書のファイル名を指定します。
何でも良いですが、本講座では『 server.crt 』とします。

以上により、サーバー証明書の作成は完了致しました。
各サーバーへの設定はまた今後の章で解説していきたいと思います。
執筆: 2008/10/14 (TUE)