HTTPS設定

DataSpiderServerと各種コンポーネントとの通信をHTTPSで行うには、サーバ証明書と通信データを暗号化/複合化するための公開鍵および秘密鍵が、DataSpiderServerの参照するキーストアに格納されている必要があります。ここでは、Javaのkeytoolを使ってサーバ証明書および鍵を生成し、DataSpiderServerの参照するキーストアに格納する手順を説明します。

keytoolとは、Javaで提供されている鍵と証明書を管理するためのユーティリティです。keytoolに関する詳細は、「keytool - 鍵と証明書の管理ツール」(http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/windows/keytool.html)を参照してください。
HTTPS設定をすることで、DataSpiderServerはHTTPSサーバとして機能し、各種コンポーネントとの通信をHTTPSで行うことができます。

keytoolを使った鍵とサーバ証明書の生成

keytoolはコマンドプロンプト(UNIX版の場合シェル)から以下の実行ファイルを実行します。 DataSpiderServerと各種コンポーネントとの通信をHTTPSで行うためには、以下1〜4の作業を行う必要があります。(自己署名証明書の場合は2と3は必要ありません)
  1. 鍵の生成
    コマンドプロンプト(UNIX版の場合シェル)を起動します。鍵を生成するには、keytool -genkeyコマンドを用います。このコマンドでは、DataSpiderServer用の鍵のペア(公開鍵および関連する非公開鍵)を生成し、-keystoreオプションで指定したキーストアに格納されます。公開鍵は自己署名証明書でラップされます。
    HTTPS通信を有効にするためのキーストアのパスは以下になります。
    keytool -genkey -alias dataspider -keystore ${dataspider.home}\server\system\common\classes\.keystore
    キーストアのパスワードを入力してください:  changeit
    姓名を入力してください。
    [Unknown]:  hostname
    組織単位名を入力してください。
    [Unknown]:  CS
    組織名を入力してください。
    [Unknown]:  companyname
    都市名または地域名を入力してください。
    [Unknown]:  Bunkyo-ku
    州名または地方名を入力してください。
    [Unknown]:  Tokyo
    この単位に該当する 2 文字の国番号を入力してください。
    [Unknown]:  JP
    CN=hostname, OU=CS, O=companyname, L=Bunkyo-ku, ST=Tokyo, C=JP でよろしいですか?
    [no]:  yes

    <dataspider> の鍵パスワードを入力してください。
    (キーストアのパスワードと同じ場合は RETURN を押してください):                    ※キーストアのパスワードと同じにするのでRETURNを押します。

    keytool -genkeyコマンドを実行すると、姓名(CN)、組織名(O)、組織単位名(OU)、都市名または地域名(L)、州名または地方名(ST)、国番号(C)の項目の入力が求められます。各項目の説明は以下の通りです。

    項目 指定する情報 注意点
    姓名(CN) DataSpiderServerがインストールされているマシンのホスト名を指定します。 CAによってはブラウザで指定するURLのドメイン名と一致させる必要があります。
    組織名(O) 部門・部署名など、任意の識別名称を指定します。 CAによっては英語名称で指定するなど、使用できる文字や文字数に制限があります。
    組織単位名(OU) 組織名を指定します。 CAによっては使用できる文字や文字数に制限があります。
    都市名または地域名(L) 組織の所在地情報(市区町村名)を指定します。 CAによっては使用できる文字や文字数に制限があります。
    州名または地方名(ST) 組織の所在地情報(都道府県名)を指定します。 CAによっては使用できる文字や文字数に制限があります。
    国番号(C) ISO規定の国コードを指定します。 日本は「JP」です。
    ISO規定の国コードについては、「English country names and code elements」(http://www.iso.org/iso/english_country_names_and_code_elements)を参照してください。

    生成される証明書の有効日数は90日です。それ以上の日数を設定する場合は、-validityオプションで証明書の有効日数を指定します。

    ※証明書の有効日数を180日に指定する場合
    keytool -genkey -alias dataspider -keystore ${dataspider.home}\server\system\common\classes\.keystore -validity 180

  2. 証明書署名要求(CSR)を作成
    keytool -certreqコマンドを用いて証明書署名要求(CSR)を作成し、csrファイルに格納します。

    ※このコマンドは証明書を自己署名する場合には必要ありません。
    keytool -certreq -keystore ${dataspider.home}\server\system\common\classes\.keystore -alias dataspider -file dataspider.csr

    ここで生成されたファイル(dataspider.csr)は、VeriSignなどのCAに提出します。CAは要求者を(通常はオフラインで)認証し、要求者の公開鍵を認証した署名付きの証明書を送り返します。場合によっては、CAが証明書の連鎖を返すこともあります。証明書の連鎖では、各証明書が連鎖内のその前の署名者の公開鍵を認証します。

  3. 証明書のインポート
    1.で作成した証明書は自己署名証明書なので、keytool -importコマンドを用いてCAから署名された証明書(または証明連鎖)をインポートする必要があります。このとき、CAの証明書(中間CAよりサーバ証明書を取得した際には、そのルートCAまでの証明書も含む)が、信頼するCAの証明書としてキーストアにインポートされている必要があります。 Javaのcacertsキーストアファイルは、5つのVeriSignルートCA証明書を含んだ状態で出荷されているので、VeriSignの証明書を、信頼できる証明書としてキーストア内にインポートする必要はないかもしれません。 ただし、ほかのCAに対して署名付き証明書を要求していて、このCAの公開鍵を認証する証明書が、cacertsにまだ追加されていない場合は、該当するCAからの証明書を、「信頼できる証明書」としてインポートする必要があります。

    ※このコマンドは証明書を自己署名する場合には必要ありません。
    CAの証明書のインポート:
    keytool -import -keystore ${dataspider.home}\jre\lib\security\cacerts -alias 認証の名称 -trustcacerts -file 認証のCERTファイル名
    サーバ証明書のインポート:
    keytool -import -keystore ${dataspider.home}\server\system\common\classes\.keystore -alias dataspider -file CAから署名された証明書(または証明連鎖)

  4. セキュリティの設定
    DataSpiderServerと各種コンポーネント間のHTTPS通信を有効にするためには、[コントロールパネル]-[DataSpiderServerの設定]-[セキュリティ]タブで[HTTPSを有効にする]にチェックを入れ、HTTPS通信時のポート番号とキーストアパスワードを設定します。

HTTPS通信の確認

前述の1〜4までの作業が終わったら(自己署名証明書の場合は1と4)、DataSpiderServerを起動しHTTPSでアクセスできるか確認します。確認手順は以下の通りです。
  1. ブラウザから「https://<ホスト名>:<SSLポート番号>/」を入力しDataSpiderServerにアクセスします。

  2. 画面に「DataSpider WebContainer」と表示されます。ここで、URLが「https://〜」になっていること、錠前のマークが表示されることを確認してください(Internet Explorerの場合、画面右下に表示されます)。



  3. 錠前マークをダブルクリックすると証明書を確認することができます。



    この画面が表示されたら、次の3点を確認してください。

    発行先 アクセスしたURLと、ホスト名(ドメイン名)が一致していること。  
    発行者 信頼できる認証局が記載されていること。 自己署名証明書の場合は、発行先と同じになります。
    有効期間 期限切れになっていないこと。 keytool -genkeyで-validityオプションを指定しなかった場合、有効日数は90日です。

  4. URLが「https://〜」になっていること、錠前のマークが表示されることを確認し、証明書の内容が問題なければ「HTTPS通信をしている」ということになります。

トラブルシューティング