09.SSL設定(4) … サーバー証明書の認証


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

openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 3650

補足 … "-days"オプションには当該証明書の有効期間(日数)を設定する。

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

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

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

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


参考 … プライベートCA局による認証について。

上記の手順では、サーバー自身で認証(サーバー自身の秘密鍵で電子署名)したので、認証したサーバー証明書の「発行先」と「発行者」の両項目には同じ名称(サーバー自身の名称)が設定され、それ自体がルート証明書にもなっている。

よって、この場合、クライアントPCにも、サーバー証明書と同じ物をルート証明書としてインストールして運用する事になる。

 
       ┌─── 同じものを使用 ───┐
       ↓               ↓
   <サーバー証明書>       <ルート証明書>
┏━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━┓
┃発行先:foobar.dip.jp  ┃┌→発行先:foobar.dip.jp ┬─同じ
┃発行者:foobar.dip.jp ──┘┃発行者:foobar.dip.jp ┘┃
┃────────────┃ ┃────────────┃
┃foobar.dip.jpの公開鍵  ┃┌─foobar.dip.jpの公開鍵 ──┐
┃────────────┃│┃────────────┃│
┃有効期間 XXXX 〜 XXXX  ┃│┃有効期間 XXXX 〜 XXXX  ┃│
┃────────────┃│┃────────────┃│
┃      :      ┃│┃      :      ┃│
┣━━━━━━━━━━━━┫│┣━━━━━━━━━━━━┫│
┃foobar.dip.jpの電子署名 ┃│┃foobar.dip.jpの電子署名 ┃│
┗━━━━━━━━━━━━┛│┗━━━━━━━━━━━━┛│
      ↑  復号化  │      ↑  復号化  │
      └───────┘      └───────┘
 
└──サーバーから受信──┘ └──クライアントPCに──┘
                   インストール
 

これとは別の認証方法として、同じく自己認証方式ではあるが、自分専用のCA局を構築して、それに認証させるという方法もある。

"OpenSSL Project"で配布されているバイナリパッケージ(*1)には、独自のCA局を構築できるスクリプト(*2)が同梱されており、それを用いて自分専用のCA局 = 「プライベートCA局」を構築することが出来るようになっている。

*1 http://www.openssl.org/related/binaries.html

*2 別途"ActivePerl"(http://www.activestate.com/activeperl)等のPerlインタプリタのインストールが必要。

プライベートCA局を構築する手順は、基本的にはサーバー証明書の生成・認証の手順とほぼ同じだ。まずプライベートCA局用の秘密鍵を生成し、次に、それとペアになるプライベートCA局用の公開鍵を含む証明書(プライベートCA局の証明書)を生成して、それをそのプライベートCA局が自身で認証(プライベートCA局の秘密鍵でプライベートCA局の証明書を電子署名しルート証明書を作成)する手順となる。

そうやって作成したプライベートCA局でサーバー証明書署名要求(CSR)を認証 … 即ち、プライベートCA局の秘密鍵でサーバー証明書に電子署名する手順になる。

サーバー自身で認証する場合と比べて何らか機能面での違いがある訳ではないが、クライアントがサーバーから受け取ったサーバー証明書を証明書チェーンを辿って検証する際の手順としては、こちらの方が若干、公的CAで認証を受けた場合に近い形だと言える。

この場合の証明書チェーンの構造は、サーバー証明書の上位に、それを認証したプライベートCA局の証明書が位置することになるので、クライアントPCには、そのプライベートCA局の証明書をルート証明書としてインストールして運用することになる。

 
               自分専用に構築したCA局の証明書
                      ↓
   <サーバー証明書>       <ルート証明書>
┏━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━┓
┃発行先:foobar.dip.jp  ┃┌→発行先:MyCA┬─同じ  ┃
┃発行者:MyCA───────┘┃発行者:MyCA┘     ┃
┃────────────┃ ┃────────────┃
┃foobar.dip.jpの公開鍵  ┃┌─MyCAの公開鍵───────┐
┃────────────┃│┃────────────┃│
┃有効期間 XXXX 〜 XXXX  ┃│┃有効期間 XXXX 〜 XXXX  ┃│
┃────────────┃│┃────────────┃│
┃      :      ┃│┃      :      ┃│
┣━━━━━━━━━━━━┫│┣━━━━━━━━━━━━┫│
┃   MyCAの電子署名   ┃│┃   MyCAの電子署名   ┃│
┗━━━━━━━━━━━━┛│┗━━━━━━━━━━━━┛│
      ↑  復号化  │      ↑  復号化  │
      └───────┘      └───────┘
 
└──サーバーから受信──┘ └──クライアントPCに──┘
                   インストール