第4回 電子署名導入プラン サーバ編その2
     〜
IISでの電子署名の組み込み


池谷千尋
ネットマークス
2001/12/7
 連載ロードマップ

第1回 電子署名で何が変わる?
第2回 導入プランを立てよう!
第3回 電子署名導入プラン サーバ編その1
第4回 電子署名導入プラン サーバ編その2
第5回 電子署名導入プラン クライアント編


   Webサーバへの証明書の組み込み

 ここでは、Webサーバへのデジタル証明書の組み込み方法を、具体的な設定例を基に説明する。暗号化だけを考えるならば、どのWebサーバを選択しても変わりはないが、クライアント認証の利用方法を考えた場合には、製品により特徴が出てくる。

●Microsoft IIS


 WindowsNT4.0 IIS4.0での設定を例として、鍵ペアとCSRの生成を行う。

  1. デジタル証明書をインストールするWebサーバ(Windows NT)へAdministrator権限のユーザーレベルでログオンする。

  2. スタートメニューから、「プログラム」→「Windows NT 4.0 Option Pack」→ 「Microsoft Internet Information Server」→「インターネット サービス マネージャ」を起動する。

  3. 「Internet Information Server」の左横の「+」をクリック。

    Microsoft 管理コンソール(1)(画像拡大)

  4. 目的のServer名の、左横の「+」をクリック。

    Microsoft 管理コンソール(2)(画像拡大)

  5. 「既定のWebサイト」を選択し、マウスの右クリックメニューから「プロパティ」を選択する。

    Microsoft管理コンソール(3)(画像拡大)

  6. 「ディレクトリ セキュリティ」のタブをクリック。

    既定のWebサイトのプロパティ-Webサイトタブ(画像拡大)

  7. ディレクトリセキュリティタブの「キー マネージャ」をクリック。

    既定のWebサイトのプロパティ-ディレクトリ セキュリティタブ(画像拡大)


     「キー マネージャ」ウィンドウが開き、続いて「WWW」を選択し、右クリックのメニューから「新しいキーの作成」を選択する。

    キーマネージャ(画像拡大)

  8. 「新しいキーの作成」ウィンドウが開き、CSRファイルを保存する場所と、ファイル名を入力し、[次へ]をクリック。  

    新しいキーの作成(1)(画像拡大)

  9. 続けて、「キー名」と「パスワード」( 7文字以内 )を入力し「ビット長」を選択、[次へ]をクリックする。 重要:このパスワードは必ず記憶しておくこと(各項目の入力には半角英数字を使用し、特殊文字、特殊記号は使用できない) 。

    新しいキーの作成(2)(画像拡大)
     
  10. 画面が変わり続けて、「組織」と「部門名」を入力する。「コモンネーム」にはWebブラウザがサイトに接続するときに使うURLの中のWebサーバ名+ドメイン名を入力する。入力が終わったら[次へ]をクリック。  

    新しいキーの作成(3)(画像拡大)

  11. 証明機関が新しいキーを供給するのに必要な個人情報を入力する。なにか問題が発生したときに連絡を取るためのものである。管理者の「氏名」、「電子メールアドレス」、「電話番号」を入力する。入力が終わったら[次へ]をクリック。  

    新しいキーの作成(4)(画像拡大)
       
  12. CSRファイルの取り出しを行うため、必要事項をすべて記入し終わったなら[完了]をクリックする。

    新しいキーの作成(5)(画像拡大)

    すると、[新しいキーの作成中]ダイアログボックスが出てCSRを作成する。[OK]をクリックして作成されたCSRファイルを確認する。

    作成されたCSRファイルを確認

    CSRを作成したら、作成した状態をIISに反映する。[キー マネージャ]ウィンドウに戻り、メニューバーから[コンピュータ]→[今すぐ変更を反映]をクリックする。

    IISに反映(画像拡大)

    次に、オンライン申請のため作成したCSRから、必要情報をテキストファイルに切り出す。NewKeyRQ.txtをNotepadなどのテキストエディタで開き、「-----BEGIN CERTIFICATE REQUEST-----」 から、「-----END CERTIFICATE REQUEST-----」までを、テキストファイルに書き出す。これが提出するCSRになる。

    作成したCSRから必要情報をテキストファイルに切り出す(画像拡大)

    作成したCSRを、日本ベリサインのWeb申し込みに申請し(「Webサーバ証明書を申請してみよう(4)申請」を参照)、証明書が送られてくるのを待つ。送られたメールの中から証明書部分を、notepadなどのテキストエディタにカット&ペーストして証明書ファイル(“www.aabbcc.txt”)を作成する。

  13. 証明書のインストール
    証明書をメールにて受け取ったら[キー マネージャ]を起動し、今回生成した「キー名」を選択し、メニューバーから[キー]→[キー証明書のインストール]をクリックする。

    キーマネージャ(1)(画像拡大)

    ここで、先ほど作成した証明書ファイル“www.aabbcc.txt”を読み込む。

    キーマネージャ(2)(画像拡大)

    インストールする証明書ファイルを選択すると、[サーバ結合]ダイアログが表示されるので、[追加]をクリックし、適用するサーバを指定する。

    サーバ結合(画像拡大)
     
    続いて、[結合の編集]ダイアログが表示される。既存の鍵ペア&証明書に、特定のIPアドレスとポート番号を割り当てている場合は、ここで設定する。

    結合の編集

    [キーマネージャ]に戻り、証明書が正常にインストールされる。下図のようになっていれば証明書のインストールは完了。

  14. SSLの設定
    SSL通信を有効にするWebサイトを選択し、マウスの右クリックメニューから、[プロパティ]をクリックする。

    Microsoft 管理コンソールで既定のWebサイトを開く(画像拡大)

    [既定のWebサイトのプロパティ]ウィンドウが表示される。[SSLポート]に、使用するポート番号を入力するため、[ディレクトリ セキュリティ]タブをクリックし、[セキュリティで保護された通信]の[編集]をクリックする。

    既定のWebサイトのプロパティ(画像拡大)

    「このリソースにアクセスする時に、セキュリティで保護されたチャンネルを必要とする」をチェックし「クライアント証明書の認証」項目で、使用する認証レベルを選択する。今回はまだ、クライアント側に証明書を配布していないので「クライアント証明書を受諾しない」を選択する。クライアントに、128bitsの暗号化を要求する場合は、[暗号化の設定]をクリックし設定を行う。クライアントに、128bitsの暗号化を要求しない場合は、そのまま[OK]をクリックして次へ進む。 

    セキュリティで保護された通信(画像拡大)

 以上で基本的な設定は完了する。

●Apacheの証明書の組み込み

 ApacheでSSLを使う方法は、apachesslによる方法とmod_ssl によるものがあるが、ここでは後者の解説を行う。

  1. ここでは、Apache 1.3.22、mod_ssl 2.8.5、openSSL 0.9.6など必要なソフトウェアのインストールが済んでいることとする。

    ・httpsd用ディレクトリの作成
    設定内容により環境が異なるとは思うが、このようなディレクトリ構成とする。
    CAやWebサーバ用の証明書、CRL(証明書失効リスト)の配置ディレクトリ、ドキュメントルートやCGIディレクトリを作成する。
     
    /home/httpsd HTTPSで使用されるファイルを置く
    /home/httpsd/cache HTTPSサーバの使うキャッシュファイルを置く
    /home/httpsd/certs/ca 認証局(CA)の証明書を置く
    /home/httpsd/certs/ca/crl CRL(証明書失効リスト)ディレクトリ
    /home/httpsd/certs/ca/newcerts
    /home/httpsd/certs/ca/private
    /home/httpsd/certs/etc openssl.confファイルを置く
    /home/httpsd/certs/httpsd サーバ証明書用ディレクトリ
    /home/httpsd/certs/httpsd/private サーバ私有鍵ディレクトリ
    /home/httpsd/cgi-bin CGIを置く
    /home/httpsd/docs htmlファイルを置く
    /home/httpsd/icons 画像ファイルを置く
    /home/httpsd/logs ログファイルを置く


  2. Webサーバ鍵ペアの作成

    # openssl genrsa -out private/serverkey.pem 1024
    1120 semi-random bytes loaded
    Generating RSA private key, 1024 bits long modulus
    ......................+++++ ........................................+++++
    e is 65537 (0x10001)


  3. CSR生成

    # openssl req -new -key /etc/httpd/conf/server.key -out server.csr
    Using configuration from ../etc/https.conf
    <メッセージが表示される>
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) []:JP
    State or Province Name (full name) []:Tokyo
    Locality Name (eg, city) []:Minato-Ku
    Organization Name (eg, company) []:aabbcc
    Second Organization Name (eg, company) []:
    Organizational Unit Name (eg, section) []:
    Common Name (eg, YOUR name) []:www.aabbcc.co.jp
    Email Address []:aabbcc@aabbcc.co.jp

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:

      
    ここまでの設定が完了すると、server.csrというファイルが生成される。

  4. オンライン申請

    作成したCSRをベリサインのWeb申し込みに申請する(「Webサーバ証明書を申請してみよう(4)申請)。そして、証明書が送られてくるのを待つ。送られたメールの中から証明書部分をテキストエディタでカット&ペーストして証明書ファイル(server.pem)を作成する。

  5. httpd.confの設定内容

    /usr/local/apache/conf/httpd.confの編集。

    SSLCertificateFile /usr/local/apache/conf/ssl.crt/ server.cer
    SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/serverkey.pem

    それぞれ、私有鍵のファイルとWebサーバ証明書はhttpd.confに指定した場所に置く。

  6. 証明書の格納

    Webサーバを再起動する。

      
    # cd /usr/local/apache/bin
    # ./apachectl start

 これで、完了。

   セキュリティ機能付きHTTPプロトコルSSLとは

 SSLはNetscape Communicationsが提唱してきたプロトコル。SSL 3.0までは同社で開発されたが、インターネット標準とするべく検討の場がIETFに移された。その後、1999年には標準化案がまとまり、TLS 1.0という名称により、RFC2246として公開されることとなった。

 このプロトコルは、セッション層で、暗号化による機密性、認証による正当性、完全性を提供し、(1)データの暗号化通信、(2)通信データの改ざんチェック、(3)通信相手を特定するための認証の3つの機能を有する。代表的なWebブラウザであるNetscape NavigatorやInternet Explorerなどには標準で実装されている。デフォルトポートは、https通信のデフォルトである443番ポートを使用する。

●一方向の認証

  ほとんどのWebサイトでの利用方法は以下の形式である。  

図4 一方方向の認証

●双方向の認証

 クライアントの証明書をWebサーバ側でチェックする。

図5 双方向の認証

   まとめ

 デジタル証明書を利用するための具体的な申請手続きや導入手順について説明してきたが、今回はWebサーバへの導入だけなので署名データの配布には利用できるが、本題の“電子署名”への対応についてはクライアント側の証明書配布・利用が必要である。

 次回はクライアントの証明書利用の解説を行う。

 


Security&Trust記事一覧

Index

 

第1回 電子署名で何が変わる?
  第2回 導入プランを立てよう!
  第3回 電子署名導入プラン サーバ編その1
第4回 電子署名導入プラン サーバ編その2
  第5回 電子署名導入プラン クライアント編


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間