LoginSignup
1
0

More than 5 years have passed since last update.

WebLogicの管理サーバーにカスタム証明書を導入したら、ノードマネージャに接続できなくなった時の対処方法

Posted at

WebLogicの管理サーバーに署名済み証明書を導入する際、キーストアを、デモ・アイデンティティとデモ信頼から、カスタム・アイデンティティとカスタム信頼に変更すると思います。

custom.png

この設定をアクティブ化した後、ノードマネージャを使ってWebLogicサーバーを起動しようとすると、サーバーXXXでは、マシンXXXに関連付けられているノード・マネージャにアクセスできません。というエラーが表示され、起動できません。

error.png

ここでノードマネージャの接続タイプをプレーンに設定して回避している例をネットで見かけますが、せっかく署名済み証明書を導入したのですから、それを使ってSSLで通信させるようにしてみましょう。

まず、管理サーバーの構成画面で設定したキーストア/秘密鍵は、管理コンソールへのアクセスだけに使われるのではありません。管理サーバーとノードマネージャの間の通信にも使われます。

管理コンソールでWebLogicサーバーの起動操作をすると、管理サーバーは、起動対象サーバーを受け持つノードマネージャに起動指示を出します。下の図のように、SSLを利用している場合(「マシン」設定でタイプにSSLを指定している場合)、管理サーバーは、管理サーバーの構成画面で設定したキーストア/秘密鍵を使用して、ノードマネージャとSSLで通信しようとします。

mosikizu.png

一方、ノードマネージャは、デフォルトでWebLogicのデモ証明書を使用してSSL通信します。管理サーバーがデモ証明書であった頃は、両方ともデモ証明書でしたから、問題なく通信できていました。しかし、管理サーバーがカスタム証明書を使用するようになった今、デモ証明書のままでは、証明書が異なることになり、接続できません。このため、サーバーXXXでは、マシンXXXに関連付けられているノードマネージャにアクセスできません。というエラーになります。

この現象を回避するには、管理サーバーで使用する証明書と同じものを、ノードマネージャでも使用させる必要があります。ノードマネージャのキーストア/秘密鍵は、どこで設定するのでしょうか?nodemanager.propertiesです。最低でも、5つの行を追加する必要があります。

nodemanager.properties
KeyStores=CustomIdentityAndCustomTrust
CustomIdentityKeyStoreFileName=カスタム・アイデンティティ・キーストアのフルパス
CustomIdentityKeyStorePassPhrase=カスタム・アイデンティティ・キーストアのパスフレーズ
CustomIdentityAlias=秘密鍵の別名
CustomIdentityPrivateKeyPassPhrase=秘密鍵のパスフレーズ

編集が終わったら、ノードマネージャを再起動しましょう。管理対象サーバーが起動できるようになるはずです。

ちなみに、管理対象サーバーのほうにはSSLを指定しなくても起動できてしまいます。なぜでしょうか?ノードマネージャは、基本的に、管理対象サーバーのプロセスを作成するだけです。一旦管理対象サーバーが起動すれば、あとは管理サーバーと管理対象サーバーが直接連携します。この連携で使用する通信は、SSLではなく、平文です。

サーバー間の通信もSSLにするには、ドメインの構成画面で管理ポートを有効化する必要があります。サーバー間のSSL通信は、それぞれのサーバーの構成画面で設定したキーストア/秘密鍵を使って行われます。ドメインに含まれる全てのサーバーでSSLが有効化されていないと、管理ポートの有効化ができないのは、このような背景があります。

kanriport.png

マニュアルなどを読んでも分かりづらかったので、書いてみました。お役に立てば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0