08.SSL設定(3) … 公開鍵とサーバー証明書の生成


ここでは、前の手順で作成した「秘密鍵」を元に、それとペアになる「公開鍵」を含む「サーバー証明書」を生成する(公開鍵はサーバー証明書を構成する項目の一項目として証明書の生成時に共に生成される)。

正確には、ここで生成するデータは、CA局に認証(電子署名)を要求する為のデータで、これを「証明書署名要求」("CSR"…"Certificate Signing Request")と呼ぶ。

(1) コマンドプロンプト画面で以下のコマンドを実行する。

openssl req -new -config ..\conf\openSSL.cnf -key server.key -out server.csr

補足 … Windows環境における"openSSL.cnf"ファイルの表示について。

"-config"オプションに指定する"openSSL.cnf"ファイルは、Windows環境においては、"Explorer"が拡張子を表示する設定になっていても、ファイルの拡張子部分(".cnf")が表示されずに"openSSL"のファイル名で表示され、また、ファイルの種類についても"短縮ダイヤル"として表示されるので注意する。

(2) "Enter pass phrase for server.key:"のプロンプトに対して、メモ帳画面の文字列をコピー&ペーストする。

Enter pass phrase for server.key: ←文字入力しても何も表示されないので注意。

(3) 以降の各プロンプトに対して以下のように入力

Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:(Enterキーのみ入力)
Locality Name (eg, city) []:(Enterキーのみ入力)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:(Enterキーのみ入力)
Organizational Unit Name (eg, section) []:(Enterキーのみ入力)
Common Name (e.g. server FQDN or YOUR name) []:(DDNSで取得したドメイン名を入力 → 下記@参照)
Email Address []:(Enterキーのみ入力)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:(Enterキーのみ入力)
An optional company name []:(Enterキーのみ入力)

上図@部分の"Common Name"には、DDNSで取得したドメイン名か、ルータのWAN側グローバルIPを入力する。

 例 

Common Name (e.g. server FQDN or YOUR name) []:foobar.dip.jp

Common Name (e.g. server FQDN or YOUR name) []:61.123.234.12

補足 … "Common Name"の設定値について。

ここで作成する証明書署名要求("server.csr")に対する認証処理は、次の手順で、(公的CA局でなく)自分で行うことになるので、基本的には上記の"Country Name"〜"An optional company name"の一連の項目の設定値にはあまり意味は無い。

但し、"Common Name"の値に関しては、次の手順で、この証明書署名要求("server.csr")を自分で認証して生成するサーバー証明書("server.crt")をクライアントPCのWebブラウザに「ルート証明書」としてインポートして使用する場合に、ブラウザのアドレス欄に入力するサーバーURLのFQDN部分(*1)がこの"Common Name"の値と一致していないと、インポートしたルート証明書による検証がうまくいかず(*2)警告メッセージが表示されてしまうので、必ず一致させておく必要がある。

*1 "FQDN"(Fully Qualified Domain Name):完全修飾ドメイン名 … "https://foobar.dip.jp"の緑文字の部分。

*2 中間者攻撃などによって、ユーザーが意図しない接続先に、悪意を持って誘導されたと判断されてしまう。

(4) "Apache"の"conf"フォルダ下に"server.csr"ファイルが作成されたことを確認。

(5) コマンドプロンプト画面とメモ帳は開いたまま次の手順に進む。