Password Manager Pro ナレッジベース

SSL 証明書を組み込む手順


本手順は、IEおよびChrome(バージョン 61)のブラウザでPMPをご利用いただく場合に必要となります。

(本ナレッジでは、Password Manager ProをPMP、PMP をインストールしたホームディレクトリを[PMP_HOME]と記載します。)
PMP は、HTTPS サービスとして動作しますが、PMP が動作するホスト名としてのプリンシパル名を持つ、正当な認証機関署名済みのSSL 証明書が必要となります。デフォルトでは、初回サービス起動時に、自己署名された証明書を生成します。 この自己署名された証明書は、ユーザーのブラウザによって有効として扱われません。そこで、PMP へ接続する際、当該認証情報およびPMPサーバーのホスト名を手動で承認する必要があり、またブラウザに対して当該証明書を承認させる必要があります。

PMPサーバーに、Webブラウザおよびユーザーに対して自身を正しく識別させるためには、以下の何れかを実施する必要があります。
・PMP 用に認証機関から新規の署名済み証明書を取得する
・認証機関から取得した既存の証明書を、PMP ホスト用のワイルドカード プリンシパル サポートとともに設定する

証明書の生成では、OpenSSL かJava にバンドルされたkeytool を使用し、認証機関による署名を取得後、PMPへ用いることが可能です。以下に各手順をご紹介いたします。

================================
ステップ1.CSRファイルの作成
ステップ2.CAへ申請
ステップ3.証明書のインストール
ステップ4.自動ログオンのための設定
================================

すでに認証機関により署名済みの証明書をお持ちの場合は、OpenSSL を用いてkeystore を作成し、PMP にて設定することを推奨します(以下の[OpenSSL を利用する場合-ステップ3]での手順1 および2 を参照)。

ステップ1.CSRファイルの生成

[Keytool を利用する場合-ステップ1]

手順1:公開秘密鍵対の生成
最初の手順は、SSL ハンドシェイク用に用いられる公開秘密鍵対の生成です。
・[PMP_HOME]/jre/bin ディレクトリに移動します。
・以下のコマンドを実行します。

keytool -genkey -alias pmp -keyalg RSA -keypass <privatekey_password> -storepass <keystore_password> -validity <no_of days> -keystore <keystore_filename>

例:keytool -genkey -alias pmp -keyalg RSA -keypass password -storepass password -validity 3650  -keystore pmp.keystore

■コマンドのオプション説明

・<keystore_password> は、キー ストアにアクセスするためのパスワードです。
・<privatekey_password> は、お手元のプライベート鍵を保護するためのパスワードです。Tomcat における固有の制限により、keystore_passwordとprivatekey_passwordのパスワードは同一のものである必要があることに注意してください。
・<no_of_days> は、生成日からの鍵対の有効日数です。
・このコマンドプロンプトにより、ユーザおよびユーザ組織についての詳細を入力します。
・'first and the last name' に関しては、PMP が稼動しているサーバのFQDN を入力します。
・その他のフィールドに関しては、関係のある情報を入力します。
・<keystore_password> は、キー ストアにアクセスするためのパスワードです。
<privatekey_password> は、お手元のプライベート鍵を保護するためのパスワードです。<no_of_days> は、生成日からの鍵対の有効日数です。
・これにより、生成された鍵対とともに、同一のフォルダ内に<keystore_filename> と名付けられたキー ストア ファイルが生成されます。

注意:
・Tomcatの制限により、特殊文字を含んだパスワードは使用できないため、パスワードは半角英数字のみを使うようにしてください。
・2048bitのサーバー証明書をする場合には、オプション「-keysize 2048」を追加してください。

手順2:CSRファイルの作成

生成された公開鍵で署名した証明書を生成するために認証機関に送るCSRファイル(=Certificate Signing Request)を生成します。
・[PMP_HOME]/jre/bin へ移動します。
・以下のコマンドを実行します。

keytool -certreq -keyalg RSA -alias pmp -keypass <privatekey_password> -storepass <keystore_password> -file <csr_filename> -keystore <keystore_filename>

例:keytool -certreq -keyalg RSA -alias pmp -keypass password -storepass password -file pmp.csr -keystore pmp.keystore

・選択した<csr_filename> が拡張子csr を持っていることに注意します。
<privatekey_password>, <keystore_password> および <keystore_filename> は前の手順で使われたものです。
・これにより、同じフォルダ内に<csr_filename> と名付けられたCSRファイルが生成されます。

[OpenSSL を利用する場合-ステップ1]

・ほとんどのLinux 環境では、OpenSSL がバンドルされており、そのOpenSSLを利用できます。
・Windows 環境では、OpenSSL はバンドルされていないので、インストールされていない場合は、以下のURL からダウンロード後インストールしてください。
http://www.slproweb.com/products/Win32OpenSSL.html
(OpenSSL をインストールしたホーム配下のbin フォルダが、PATH 環境変数に含まれていることを確認します)

手順1:公開秘密鍵対の生成

最初の手順は、SSL ハンドシェイク用に用いられる公開秘密鍵対の生成です。
コマンドプロンプト画面を開き、以下のコマンドを実行します。

openssl genrsa -des3 -out <privatekey_filename>.key 1024

※<privatekey_filename> は、秘密鍵を保持するためのファイル名です。これにより、同じフォルダ内に<privatekey_filename>.key と名付けられたファイルが生成されます。
ここでは、秘密鍵用パスフレーズを入力するよう指示されます。passtrixまたは任意のパスフレーズを選択して入力します。

注意:(Tomcatの制限により、特殊文字を含んだパスワードは使用できないため、パスワードは半角英数字のみを使うようにしてください。)

手順2:CSRファイルの作成

上の手順で生成された公開鍵で署名した証明書を生成するために認証機関に送るCSRファイル(=Certificate Signing Request)を生成します。
以下のコマンドを実行してください。

openssl req -new -key <privatekey_filename>.key -out <certreq_filename>.csr

※<privatekey_filename>.key は、上記手順にて使われたものです。
※<certreq_filename>.csr は、認証機関へ証明書作成要求を行う際に指定するファイル名です。
ここでは、PMPを運用するサーバのDN(distinguished name)の一部である一連の値を入力するよう指示されます。
・ユーザに対して適用可能なものとしての値を入力し、[共通名]のために重要になるところの、サーバをホストするPMP の完全修飾名を提供します(それを用いてブラウザを通してPMP にアクセスします)。
・これにより、同じフォルダに<certreq_filename>.csr というファイル名が生成されます。

ステップ2.CAへ申請

認証機関署名済み証明書を取得するために認証機関へCSRファイルを送付します。
・Verisign (http://verisign.com)、Thawte (http://www.thawte.com)、RapidSSL (http://www.rapidssl.com)などのような認証機関を選び、署名付き証明書の申請を行ってください。 CSRファイル送付に関する詳細は、各機関により異なるため、それぞれご確認ください。
・このプロセスには数日かかり、署名済みのSSL証明書および当該認証機関の証明書(cer ファイル)が戻ってきます。

※ここでは、例としてSymantec社の無料テスト用SSLを使用し、解説しています。

「テスト用無料 SSLサーバ証明書 お申し込みの流れ」
https://www.symantec.com/ja/jp/page.jsp?id=ssl-trial

なおCSRファイルの取得方法とサーバ証明書のインストール方法は、サーバ証明書を購入したCAによって異なります。CAで購入したサーバ証明書の種類によって、インポートする証明書(ルート証明書、中間証明書など)が異なりますので、ご了承ください。

※本番環境での作業前に、テスト(Trial)用の証明書の発行とインストールの確認をしていただくことを推奨いたします。

1.サーバータイプとして「Microsoft以外のサーバ」を選択し、[次へ]をクリックします。
2.技術担当者情報を入力し、[次へ]をクリックします。
3.作成したcsrファイルをメモ帳以外のテキストエディタで開き内容をコピー後、「CSR貼り付け」欄にペーストします。
4.入力情報を確認後、[申請する]をクリックします。
5.受領したメール内にサーバー証明書が記載されていますので、以下の部分をコピーし取得します。

-----BEGIN CERTIFICATE-----
証明書
-----END CERTIFICATE-----

6.受領したメール内に記載されているURLからルート証明書と中間CA証明書を取得します。

ステップ3.証明書のインストール

[Keytool を利用する場合-ステップ3]

手順1:認証機関署名済の証明書をキーストアへインポート

ステップ2にて取得した証明書全て(ルート証明書・中間証明書・サーバ証明書)を[PMP_HOME]/jre/bin フォルダに保存します。

その後、認証機関署名済証明書をキーストアにインポートします。
・[PMP_HOME]/jre/bin フォルダに移動します。
・以下のコマンドを実行します。

keytool -import -alias pmp -keypass <privatekey_password> -storepass <keystore_password> -keystore <keystore_filename> -trustcacerts -file <your_ssl_certificate>

・<your_ssl_certificate> は、認証機関から取得した証明書であり、前の手順で保存されたcer ファイルです。
<privatekey_password>, <keystore_password> および <keystore_filename> は、上の手順で使われたものです。
・<keystore_filename> を[PMP_HOME]/conf フォルダへコピーします。

※Symantec社の無料テスト用SSLを使用した場合には、ルート証明書・中間証明書・サーバ証明書の順序でキーストアにインポートします。インポート時のコマンドをご案内いたします。

(1)ルート証明書をキーストアへインポート
※ルート証明書をroot.cerとして保存しています。

keytool -import -trustcacerts -alias root -keystore <keystore_filename> -file root.cer

(2)中間証明書をキーストアへインポート
※中間証明書をintermediateCA.cerとして保存しています。

keytool -import -trustcacerts -alias intermediateCA -keystore <keystore_filename> -file intermediateCA.cer

(3)サーバー証明書をキーストアへインポート

keytool -import -alias pmp -keystore <keystore_filename> -trustcacerts -file  <your_ssl_certificate>

手順2:PMP側の設定

最後に、お手元のSSL 証明書とともに当該キー ストアを使うようにPMP サーバを設定します。
・[PMP_HOME]/conf フォルダへ移動し、server.xmlファイルをメモ帳以外のテキストエディタで開きます。
・'keystoreFile' エントリを検索します。"conf/server.keystore"がデフォルト値になっていますので、"conf/<keystore_filename>"へ値を変更します(ここで<keystore_filename>は、前の手順で用いたものです)。
・'keystorePass'エントリも検索します(keystoreFile の隣にあります)。
デフォルトでは、"passtrix" という値になっていますので、"<keystore_password>"へ値を変更します(ここで<keystore_password>は、前の手順で用いたものです)。

注意:ビルド9700以降では、デフォルトではkeystore passwordが暗号化されているため、keystorePassEncrypted = true から keystorePassEncrypted = falseに変更後、keystore passwordの値を変更してください。

・PMP サーバを再起動し、Webブラウザより接続し確認してください。
ブラウザから警告無しでPMP ログインコンソールが参照できれば、SSL証明書のインストールに成功したことになります。

注意:Tomcat はデフォルトでJKS(Java Key Store)およびPKCS #12 形式のキー ストアのみを受け付けます。
当該キー ストアがPKCS #12 形式である場合、server.xml ファイルにて、キー ストア名とともに以下のオプション:keystoreType="PKCS12"を含むようにします。これにより、Tomcat に当該形式がPKCS12 であることを伝えます。この変更後、PMPサーバを再起動します。

[OpenSSL を利用する場合-ステップ3]

手順1:認証機関署名済の証明書をキーストアへインポート

証明機関署名済み証明書をキーストアにインポートします。
・エミュレータ画面にて作業フォルダに移動します。
・以下のコマンドを実行します。

openssl pkcs12 -export -in <cert_file>.cer -inkey <privatekey_filename>.key -out <keystore_filename>.p12 -name pmp -CAfile <root_cert_file>.cer -caname pmp -chain

(ここで
*cert_file.cer : 拡張子cer の署名済みSSL 証明書
*privatekey_filename.key : 拡張子key のプライベート鍵ファイル
*keystore_filename.p12 : 拡張子p12 で生成されるキー ストア
*root_cert_file.cer : 拡張子cer の認証機関のルート証明書
*パスワード入力を求められるので、手順1でプライベート鍵用に用いたのと同じパスワードを入力します。
この要請は、Tomcat での固有の制限であり、これらの2つのパスワードは同一である必要があることに注意してください。
・これにより、同じフォルダ上にキーストア ファイル <keystore_filename>.p12 が生成されます。

手順2:PMP側の設定

お手元のSSL 証明書とともに当該キー ストアを使うようにPMP サーバを設定します。
・前の手順で生成された<keystore_filename>.p12 を[PMP_HOME]\conf フォルダにコピーします。
・ターミナル画面にて、[PMP_HOME]\conf フォルダに移動し、server.xmlファイルをメモ帳以外のテキストエディタで開きます。
・keystoreFile エントリを検索します。デフォルト値は、"conf/server.keystore"に設定されていますので、"conf/<keystore_filename>.p12"に変更します。
'keystorePass'に関するエントリが、"passtrix"か、あるいは前の手順にてキー ストア生成中に指定したパスワードに設定しているかを確認します。
・keystorePass エントリの隣にkeystoreType="PKCS12" エントリを新規に追加します。
・server.xml を保存します。
・PMP サーバを再起動し、Webブラウザより接続し確認してください。
ブラウザから警告無しでPMP ログインコンソールが参照できれば、SSL証明書のインストールに成功したことになります。

[既存のワイルドカードをサポートするSSL 証明書のインストール-ステップ3]

本手順では既に発行済の証明書を使用する手順となります。

・[PMP_HOME]/conf フォルダへ移動し、server.xml ファイルをメモ帳以外のテキストエディタで開きます。
・'keystoreFile'エントリを検索します。これは、デフォルト値が"conf/server.keystore"になっていますので、値を"conf/<keystore_filename>"に変更します(ここで、<keystore_filename>は、既存のワイルドカード証明書に属するものです)。
・'keystorePass'エントリも検索します(keystoreFile の隣にあります)。これは、"passtrix"に設定されたデフォルト値になっていますので、値を"<keystore_password>"に変更します。ここで、<keystore_password> は、既存のワイルドカード証明書のキーストアを保護するのに用いたものです。

ステップ4.自動ログオンのための設定

手順1:wrapper.conf(Linuxの場合は、wrapper_lin.conf)の設定変更
[PMP_HOME]/confフォルダへ移動し、wrapper.confをメモ帳以外のテキストエディタで開き、以下3点のエントリを変更します。下記エントリがない場合には追記ください。
(1)

変更前:wrapper.java.additional.21=-Djavax.net.ssl.keyStore=../conf/PMPKeyStore.p12
変更後:wrapper.java.additional.21=-Djavax.net.ssl.keyStore=../conf/<新キーストアファイル>

(2)

変更前:wrapper.java.additional.22=-Djavax.net.ssl.keyStorePassword=passtrix
変更後:wrapper.java.additional.22=-Djavax.net.ssl.keyStorePassword=<新しいパスワード>

※パスワードは、server.xmlに設定したものと同じにしてください。
(3)
以下のエントリがあることをご確認ください(以下は、PKCS #12 形式の場合)

wrapper.java.additional.23=-Djavax.net.ssl.keyStoreType=PKCS12

手順2:[PMP_HOME]/conf/gateway.confの設定変更

ビルド9700以降では、[PMP_HOME]/confフォルダへ移動し、gateway.confをメモ帳以外のテキストエディタで開き、以下3点変更します。

(1)

変更前:keyStore=conf/server.keystore
変更後:keyStore=conf/<新キーストアファイル>

(2)

変更前:keyStorePassword=文字列
変更後:keyStorePassword=<新しいパスワード>

(3)

(以下は、PKCS #12 形式の場合)
変更前:keyStoreType=JKS
変更後:keyStoreType=PKCS12

(4)

変更前:passwordEncryptd=true
変更後:passwordEncryptd=false

手順3:[PMP_HOME]/conf/server.xmlの設定変更

ビルド9700以降では、[PMP_HOME]/confフォルダへ移動し、server.xmlをメモ帳以外のテキストエディタで開き、" <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->"内の値を以下3点変更します。(<Connector>タグには、port 7272および7070用があるため、4点x 2か所=計8か所の変更となります。)

(1)

変更前:keystoreFile=conf/server.keystore
変更後:keystoreFile=conf/<新キーストアファイル>

(2)

変更前:keystorePass=ランダムな数値
変更後:keystorePass=<新しいパスワード>

(3)

(以下は、PKCS #12 形式の場合)
変更前:keystoreType=JKS
変更後:keystoreType=PKCS12

(4)

(以下は、ビルド10.0以降の場合)
変更前:keystorePassEncrypted=true
変更後:keystorePassEncrypted=false

手順4:PMPの再起動

PMP サーバを再起動し、Web ブラウザを通して接続します。
ブラウザから警告無しでPMP ログインコンソールを参照できれば、PMP にてお手元のSSL 証明書のインストールに成功したことになります。
メモ:さらに詳しい情報とトラブルシューティングにつきましては、お手元の認証機関のドキュメントを参照ください。