HTTPS設定

PIMSYNCとの通信をHTTPSで行うには、サーバ証明書と通信データを暗号化/復号化するための公開鍵および秘密鍵が、PIMSYNCが参照するキーストアにインポートされている必要があります。
本ページでは、Javaのkeytoolを使ってサーバ証明書および鍵を生成し、キーストアにインポートする手順について記述します。

keytoolとは、Javaで提供されている鍵と証明書を管理するためのユーティリティです。
keytoolについては、「keytool - Key and Certificate Management Tool」(http://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html)を参照してください。
HTTPS設定を行うことで、PIMSYNCはHTTPSサーバとして機能し、通信をHTTPSで行うことができます。

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

keytoolの実行ファイルの配置場所

鍵とサーバ証明書の生成

鍵とサーバ証明書の生成は、以下の手順で行います。(自己署名証明書の場合、2.と3.は必要ありません。)
  1. 鍵の生成
    コマンドプロンプトを起動します。鍵を生成するには、keytool -genkeypairコマンドを用います。このコマンドは、PIMSYNC用の鍵のペア(公開鍵および関連する非公開鍵)を生成し、-keystoreオプションで指定したキーストアに格納します。公開鍵は自己署名証明書でラップされます。

    HTTPS通信を有効にするためのキーストアの配置場所は以下の通りです。
    keytool -genkeypair -alias <エイリアス名> -keystore $PIMSYNC_HOME\keystore\.keystore -keyalg RSA
    キーストアのパスワードを入力してください:  changeit
    新規パスワードを再入力してください:  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 でよろしいですか?
      [いいえ]:  y

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

    keytool -genkeypairコマンドを実行すると、姓名(CN)、組織単位名(OU)、組織名(O)、都市名または地域名(L)、都道府県名または州名(ST)、国コード(C)の項目の入力が求められます。
    項目の説明
    項目 指定する情報 注意点
    姓名(CN) PIMSYNC稼働OSのホスト名を指定します。 CAによってはブラウザで指定するURLのドメイン名と一致させる必要があります。
    組織単位名(OU) 組織名を指定します。 CAによっては使用できる文字や文字数に制限があります。
    組織名(O) 部門・部署名など、任意の識別名称を指定します。 CAによっては英語名称で指定するなど、使用できる文字や文字数に制限があります。
    都市名または地域名(L) 組織の所在地情報(市区町村名)を指定します。 CAによっては使用できる文字や文字数に制限があります。
    都道府県名または州名(ST) 組織の所在地情報(都道府県名)を指定します。 CAによっては使用できる文字や文字数に制限があります。
    国コード(C) ISO規定の国コードを指定します。 日本は「JP」です。
    ISO規定の国コードについては、「Online Browsing Platform (OBP)」(https://www.iso.org/obp/ui/#search)を参照してください。

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

    例:証明書の有効日数を180日に指定する場合
    keytool -genkeypair -alias <別名> -keystore $PIMSYNC_HOME\keystore\.keystore -keyalg RSA -validity 180

  2. 証明書署名要求(CSR)の作成
    (自己署名証明書の場合は必要ありません。)
    keytool -certreqコマンドを用いて証明書署名要求(CSR)を作成し、csrファイルに格納します。

    keytool -certreq -keystore $PIMSYNC_HOME\keystore\.keystore -alias <別名> -file <CSRファイル名>.csr

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

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

    CAの証明書のインポート:
    keytool -importcert -keystore $PIMSYNC_HOME\jre\lib\security\cacerts -alias <認証の名称> -trustcacerts -file <認証のCERTファイル名>
    サーバ証明書のインポート:
    keytool -importcert -keystore $PIMSYNC_HOME\keystore\.keystore -alias <別名> -file <CAから署名された証明書(または証明連鎖)>

  4. セキュリティの設定
    プロパティファイル(pim.properties)のHTTPS有効化、HTTPS通信時のポート番号、キーストアパスワードを設定します。
プロパティファイルの詳細については、「プロパティリファレンス」を参照してください。

HTTPS通信の確認

PIMSYNCを起動し、HTTPSでアクセスできるかを確認します。確認手順は以下の通りです。
  1. ウェブブラウザから「https://<PIMSYNC稼働OSのホスト名またはIPアドレス>:<PIMSYNCのSSLポート番号>/」を入力しPIMSYNCにアクセスします。

  2. PIMSYNCのログイン画面が表示されます。ここで、URLのURIスキームが「https」になっていること、アドレスバーに鍵のマークが表示されることを確認してください。

  3. 鍵のマークをクリックし、表示されたウィンドウの[接続がセキュリティで保護されています]をクリックします。

  4. ウィンドウ右上の証明書のマークをクリックすると証明書を確認することができます。


  5. 以下の点を確認してください。
URLのURIスキームが「https」になっていること、鍵のマークが表示されることが確認でき、証明書の内容に問題がなければ、「HTTPS通信をしている」ということになります。

トラブルシューティング

ブラウザからアクセスすると証明書のエラーが表示される


PIMSYNCにアクセスできない

以下の点を確認してください。 プロパティファイルの詳細については、「プロパティリファレンス」を参照してください。

仕様制限