2

新しい SSL 証明書を GlassFish 3.1.2.2 で動作させるのに苦労しています。現在の SSL 証明書が間もなく期限切れになるため、GlobalSign で更新を注文しました。

現在の SSL 証明書を使用すると、次の応答が得られます (これは、テスト目的で SoapUI を介して行われます)。

HTTP/1.1 200 OK
X-Powered-By: Servlet/3.0 JSP/2.2 (Oracle GlassFish Server 3.1.2.2 Java/Oracle Corporation/1.7)
Server: Oracle GlassFish Server 3.1.2.2
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 01:00:00 CET
Content-Type: application/xml
Transfer-Encoding: chunked
Date: Mon, 11 Jan 2016 13:38:32 GMT

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>..(xmlresponse)..</xml>

ただし、新しい SSL 証明書がアクティブになっていると、次のメッセージが表示されます。

ソープUI:

Error getting response; javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake.

ブラウザ:

This page can’t be displayed

Turn on TLS 1.0, TLS 1.1, and TLS 1.2 in Advanced settings and try connecting to  again. If this error persists, contact your site administrator.

Glassfish の設定で変更したのは次の 1 つだけです。

構成 > server-config > HTTP サービス > HTTP リスナー > http-listener-2 > SSL タブ

  • 古いエイリアス (mydomain) から新しいエイリアス (mydomain.net) への Certificate NickName フィールド。キーストア内の秘密鍵のエイリアスと一致します。
  • 古いキーストア (server.keystore) から新しいキーストア (ssl_mydomain_net.jks) へのキー ストア フィールド値 (ファイル名)

新しいキーストアと古いキーストアの両方がC:\glassfish3\glassfish\domains\mydomain\configフォルダー内にあります。

古い SSL 設定:

古い SSL

新しい SSL 設定:

新しい SSL

すでに GlobalSign サポートと連絡を取り、キーストアが正しく生成されていることを確認しました。

実行するkeytool -list -keystore ssl_mydomain_net.jksと、正しいはずの次の出力が得られます。

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 3 entries

root, Jan 8, 2016, trustedCertEntry,
Certificate fingerprint (SHA1): <...>
intermediate, Jan 8, 2016, trustedCertEntry,
Certificate fingerprint (SHA1): <...>
<mydomain>.net, Jan 8, 2016, PrivateKeyEntry,
Certificate fingerprint (SHA1): <...>

私が結論付けた限りでは、Glassfish と関係があります。私はここに選択肢がないので、誰かが何か知っていますか...


2016 年 1 月 13 日更新

Glassfish 3.1.2.2 から Payara 4.1 (基本的には Glassfish 4.1) にアップグレードしました。新しい新しいドメインを作成したところ、デフォルトで次の jks ファイルがmydomain/configフォルダーにあることに気付きました。

  • cacerts.jks
  • キーストア.jks

独自の jks (ssl_mydomain_net.jks) をこのフォルダーに追加し、新しい SSL イメージで上記のように http-listener-2 の設定を調整しました。これにより、この投稿の冒頭で述べたのと同じ結果が得られました。

私は何が欠けていますか?デフォルトの jks ファイルを調整する必要はありますか? 独自に作成したキーストアではなく、keystore.jks から csr を作成する必要がありますか?

4

2 に答える 2

2

私が必要なものは何?

  • GlobalSign SSL 証明書
  • IIS がインストールされた Windows サーバー
  • Payara インスタンス

GlobalSign から証明書を取得する

GlobalSign Web サイトで SSL 証明書を注文または更新します。プロセス中に、AutoCSR で注文するオプションを選択します。新しい証明書のパスワードは、GlobalSign によって作成された追加の文字列によって追加された作成プロセス中に指定する必要があるパスワードから存在します。このパスワードは、次のフェーズで必要になるため、覚えておいてください。

注文が完了すると、PFX ファイルが届きます。このファイルを、IIS が実行されている Windows サーバーにコピーします。

Payaraのマスターパスワードの設定・変更

秘密鍵と公開鍵を含む証明書のパスワードは、Payara のマスター パスワードと一致する必要があります (これは自由に選択できます。GlobalSign での証明書要求のパスワードではありません)。次のコマンドを実行して、マスターパスワードを変更できます。

asadmin change-master-password –savemasterpassword=true mydomain

証明書のインストール

  1. PFX ファイルを右クリックし、[ PFX のインストール] を選択します。
  2. ようこそ画面で、[次へ] をクリックします。
  3. [インポートするファイル] 画面で、PFX ファイルの場所がデフォルトでそこにあるはずなので、[次へ] をクリックします。
  4. パスワードを入力します。これは、GlobalSign によって作成された文字列によって拡張された、証明書の作成時に放棄したパスワードであることを忘れないでください。
  5. [このキーをエクスポート可能としてマーク] を選択します。オプション。
  6. [すべての拡張プロパティを含める] を選択します。オプション。
  7. [次へ] をクリックします
  8. [証明書ストア] ウィンドウで、 [すべての証明書を次のストアに配置する] オプションを選択します。
  9. [参照] ボタンをクリックします。
  10. 個人ストアを選択します。
  11. [ OK] をクリックします。
  12. [次へ] をクリックします
  13. [完了] をクリックします

公開鍵と秘密鍵をエクスポートする

  1. Microsoft 管理コンソールを開きます ([スタート] > [ファイル名を指定して実行] > [mmc] > [OK])。
  2. [ファイル] > [スナップインの追加と削除] をクリックします
  3. [使用可能なスナップイン] リストで [証明書] を選択します
  4. 追加ボタンをクリックします
  5. 次のウィンドウで、 [マイ ユーザー アカウント] オプションを選択します。
  6. [完了] をクリックします
  7. [ OK] をクリックします。
  8. 管理コンソールで、[Certificates - Current User] > [Personal] > [Certificates]を展開します。すべてが正しければ、GlobalSign Domain Validation CA、GlobalSign Root CA、およびmydomain.netの 3 つの証明書が表示されます。
  9. mydomain.netエントリを右クリックします
  10. [すべてのタスク] > [エクスポート...] を選択します。
  11. ようこそ画面で、[次へ] を押します
  12. [はい、秘密鍵をエクスポートします] オプションを選択します
  13. [次へ] をクリックします
  14. [エクスポート ファイル形式] ウィンドウで、[ Personal Information Exchange - PKCS # 12 (.PFX)]を選択し、[可能であれば証明書パスにすべての証明書を含める] オプションと [すべての拡張プロパティをエクスポートする]オプションを選択します。
  15. [次へ] をクリックします
  16. [パスワード] ウィンドウで、Payara のマスター パスワードを入力します (これは一致している必要があります)。
  17. [次へ] をクリックします
  18. エクスポート PFX ファイル (mydomain.pfx など) を配置する場所を選択し、[次へ] をクリックします。
  19. [完了] をクリックします

別名の取得

次のコマンドを実行して、生成されたエイリアス名を見つけます。

keytool -list -storetype pkcs12 -keystore mydomain.pfx

キーストアのパスワードを入力する必要があります。このパスワードは、Payara のマスター パスワードと同じでなければなりません (手順 29 を参照)。

このコマンドが正常に実行されると、エクスポートの最初の行にエイリアスが表示されます。これは、長いテキスト文字列 (例: {fa2ebfd3-z11b-492d-2c73-f5z199732p2k}) の後に日付が続くように見えます。後で必要になるので、この文字列をコピーします。

Payara への証明書の追加

これらは、私が見逃していた 2 つの重要なステップです。にあるcacerts.jksおよびkeystore.jksに証明書を追加する必要がありますpayara_install_folder/glassfish/domains/mydomain/config。これは、次の 2 つのコマンドで実行できます。

keytool -importkeystore -deststorepass <payara masterpassword> \
-destkeypass <payara masterpassword> -destkeystore cacerts.jks \
-srckeystore mydomain.pfx -srcstoretype PKCS12 \
-srcstorepass <payara masterpassword> \
-alias mydomain_alias_name //in our example this would be {fa2ebfd3-z11b-492d-2c73-f5z199732p2k}

keytool -importkeystore -deststorepass <payara masterpassword> \
-destkeypass <payara masterpassword> -destkeystore keystore.jks \
-srckeystore mydomain.pfx -srcstoretype PKCS12 \
-srcstorepass <payara masterpassword> \
-alias mydomain_alias_name //in our example this would be {fa2ebfd3-z11b-492d-2c73-f5z199732p2k}

Payara で http-listener を設定する

  1. Payara 管理コンソールを開きます (通常、これはhttp://localhost:4848になります)
  2. [構成] > [サーバー構成] > [HTTP サービス] > [HTTP リスナー] > [http-listener-2] に移動します。
  3. [全般] タブでセキュリティを有効にする
  4. [SSL] タブで、SSL3 と TLS を有効にします
  5. Certificate NickName に mydomain_alias_name を入力します (この場合は {fa2ebfd3-z11b-492d-2c73-f5z199732p2k})。
  6. [キー ストア] フィールドに、keystore.jks と入力します。
  7. 保存ボタンを押します
  8. ドメインを再起動する
  9. それが機能するかどうかをテストしてください!:)

ガイドHow To Install Comodo SSL Certificate Chain On Payara / Glassfish 4.xを作成した GlobalSign サポートと Max Lam に感謝します。これらすべての知識を組み合わせることで、解決策を思いつきました。

keytool コマンドを実行して、証明書のインストール公開鍵と秘密鍵のエクスポートの部分を置き換える方法がおそらくあります。しかし、私は証明書に 100% 精通しているわけではないので、省略しました。誰かが正しいコマンドを教えてくれたら教えてください。答えを更新します。

于 2016-01-15T10:26:55.773 に答える