TOPサーバ構築・運用> 鍵のペア作成と証明書の作成




いまさら聞けないApache〜Webサーバ構築のキソ
いまさら聞けないApache〜Webサーバ構築のキソ

第7回:Apache+SSL環境を構築しよう!

著者:ビーブレイクシステムズ  木下 喜雄   2007/12/12
前のページ  1  2  3  次のページ
鍵のペア作成と証明書の作成

   SSLの通信で利用するには、公開鍵/秘密鍵のペアとデジタル証明書が必要です。これらは、OpenSSLに付属するコマンドを利用し生成します。

   生成するファイルは、server.key(秘密鍵)、server.csr(CSRファイル:公開鍵+証明書申請情報)、server.crt(デジタル証明書)の3つとなります。

Webサーバの秘密鍵の生成

   それでは、秘密鍵を生成しましょう。キーを作成する任意のディレクトリに移動後、コマンド「# openssl genrsa -des3 1024 > server.key」を入力し、実行してください。なお、筆者はconfディレクトリ配下に作成します。

   Windowsの方は「C:\Program Files\Apache Software Foundation\Apache2.2\bin」配下にある「openssl.exe」に適宜パスを通し、同様にコマンド「> openssl genrsa -des3 1024 > server.key」」を実行してください。

   実行すると、秘密鍵のパスフレーズ入力を求められますので、任意のパスフレーズを入力してください。これで「server.key」という名前の秘密鍵が生成されました。秘密鍵生成時のサブコマンドやオプションの意味は表3の通りです。
オプション 種類 意味
genrsa サブコマンド RSA形式の秘密鍵の作成します。
-des3 オプション des3方式でファイルを暗号化します。
1024 オプション 1024バイトの鍵を生成します。

表3:秘密鍵生成のサブコマンド・オプションのオプションの値

オプション 種類 意味
req サブコマンド CSRファイルの作成します。
-new オプション 新規にCSRファイルを作成します。
-key 鍵 オプション 入力する秘密鍵のファイル名を指定します(パスフレーズ付きの鍵の場合は、パスフレーズが必要です)。
-config opensslのcnfファイル オプション openssl.cnfのパスを指定します。

表4:CSRファイル生成のサブコマンド・オプション

オプション 種類 意味
x509 サブコマンド X.509形式のデジタル証明書の作成します。
-in オプション CSRファイルパスを指定します。
-days 日数 オプション 証明書の有効期限を指定します。
-req オプション 入力ファイルが CSRファイルであることを指定します。
-signkey オプション 自己証明書生成時に使用するオプション。秘密鍵のパスを指定します。

表5:デジタル証明書生成のサブコマンド・オプション

リスト1:公開鍵情報の入力例
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shinagawa-Ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bbreak LTD
Organizational Unit Name (eg, section) []:Kaihatsubu
Common Name (eg, YOUR name) []:192.168.0.100
Email Address []:kinoshita@bbreak.co.jp
A challenge password []:
An optional company name []:


Webサーバの公開鍵の作成

   次にWebサーバのCSRファイルを作成します。CSRファイルとは、公開鍵の情報の他に、作成時に指定する組織名や組織の所在地などの情報を含むデータのことです。CSRファイルは認証局からデジタル証明書を発行してもらうときに必要になります。それではCSRファイルを生成しましょう。

   Windows以外の場合は、コマンド「# openssl req -new -key server.key > server.csr」を入力し実行してください。Windowsの場合は、コマンド「> openssl req ?config ..\conf\openSSL.cnf -new -key server.key > server.csr」を入力し実行してください。実行すると、秘密鍵のパスフレーズ入力が求められます。CSRファイル生成時のサブコマンドやオプションの意味は表4の通りです。

   正しい秘密鍵のパスフレーズを入力すると、公開鍵情報の入力が求められます。参考例として筆者が入力した値をリスト1に紹介します。それぞれ、Country Nameは国名、State or Province Nameは都道府県名、Locality Name、区町村名となります。

   また、Organization Nameは組織名、Organizational Unit Nameは部門名です。Common NameはSSLを使うサイトの名前(今回は皆さんのサーバIPアドレス)、Email Addressはメールアドレスとなります。

   A challenge passwordは証明書を破棄する場合に必要になるパスワード、An optional company nameは別の組織名がある場合、その組織名の入力となります。なお「A challenge password」と「An optional company name」は空欄でもかまいません。

   以上で、の作業でCSRファイルが生成できました。


デジタル証明書の作成

   SSL通信にはCAが発行した証明書が必要です。しかし、正式なデジタル証明書を発行してもらうためには費用や手間がかかります。今回は、自分で自分自身の証明書を発行し、それを利用しましょう。

   コマンド「# openssl x509 -in server.csr ?days 365 -req -signkey server.key > server.crt」を入力し、実行してください。各サブコマンドやオプションの意味は表5の通りです。実行すると、秘密鍵のパスフレーズ入力が求められますので、秘密鍵生成時に入力したパスフレーズを入力してください。

   以上で「鍵・証明書の設定」は完了です。

   現状の鍵の場合、Apache起動時にパスフレーズの入力が求められます。テストなどの際には、この秘密鍵のパスフレーズを解除して利用できます。先ほど作成した「server.key」を「server.key_bk」に変更後、コマンド「# openssl rsa -in server.key_bk > server.key」を入力し、実行してください。パスフレーズの入力が求められますので、パスフレーズを入力してください。これで秘密鍵のパスフレーズが解除されます。

前のページ  1  2  3  次のページ


株式会社ビーブレイクシステムズ  木下 喜雄
著者プロフィール
株式会社ビーブレイクシステムズ  木下 喜雄
Javaスペシャリスト。前職ではCOBOL、Visual Basicを用いた大規模流通業向けシステム開発を行う。その現場で大規模システム構築時の開発効率の向上を目指してオブジェクト指向的な考え方を身につける。その後独学でJava言語を習得し、Java専業ベンダーであるビーブレイクシステムズに転職、現在は、Javaを用いた開発だけではなくお客様とのリアルコミュニケーションを実現できるマルチなエンジニアを目指し、日々奮闘中。


INDEX
第7回:Apache+SSL環境を構築しよう!
  Apache+SSL環境構築の流れ
鍵のペア作成と証明書の作成
  Apache設定ファイルとSSL設定ファイルの設定