Enterprise Manager の通信の設定

デフォルトでは、Enterprise Manager (EM)は、エージェント、Workstation、および WebView との通信、また Enterprise Manager のクラスタとの通信に、ポート 5001 を使用します。 このポートのデフォルトの EM 通信チャネルは、セキュアではありません。 SSL サーバ ソケットを設定することにより、デフォルトの通信チャネルに加えて、Enterprise Manager のセキュアな通信チャネルを有効にすることができます。 Enterprise Manager へのソケット通信はすべて保護されており、パスワードはセキュアな通信チャネルで暗号化されます。
apmdevops106
デフォルトでは、Enterprise Manager (EM)は、エージェント、Workstation、および WebView との通信、また Enterprise Manager のクラスタとの通信に、ポート 5001 を使用します。 このポートのデフォルトの EM 通信チャネルは、セキュアではありません。 SSL サーバ ソケットを設定することにより、デフォルトの通信チャネルに加えて、Enterprise Manager のセキュアな通信チャネルを有効にすることができます。 Enterprise Manager へのソケット通信はすべて保護されており、パスワードはセキュアな通信チャネルで暗号化されます。
管理者は、以下のタスクを実行して、使用環境の Enterprise Manager の通信を設定します。
3
デフォルトの Enterprise Manager の通信チャネルの設定
IntroscopeEnterpriseManager.properties
ファイルでは、Enterprise Manager と通信する各エージェントの通信チャネル プロパティを指定します。
以下の手順に従います。
  1. <EM_Home>/config
    ディレクトリに移動します。
  2. IntroscopeEnterpriseManager.properties
    ファイルをテキスト エディタで開きます。
  3. 以下の通信チャネル プロパティを必要な値に変更します。
    • introscope.enterprisemanager.serversocketfactory.<ChannelName>
      Enterprise Manager が Workstation およびエージェントとの暗号化通信に使用するサーバ ソケット ファクトリのクラス名を指定します。
    • introscope.enterprisemanager.port.
      <
      ChannelName
      >
      Enterprise Manager が Workstation およびエージェントとの暗号化通信に使用するリスナ ポートを指定します。
      IntroscopeWebView.properties
      ファイルは、Enterprise Manager ポートを
      introscope.webview.enterprisemanager.tcp.port
      プロパティで指定します。
    • introscope.enterprisemanager.enabled.channels
      Enterprise Manager が使用できる通信チャネルを指定します。
  4. ファイルを保存して閉じます。
  5. Enterprise Manager を再起動します。
注: エージェント プロパティの設定の詳細については、「Java エージェント」または「Microsoft .NET エージェント」を参照してください。
通信チャネルの再バインド
ソケットが非アクティブ状態になったときにメモリがまだ使用されている場合は、使用中のポートに通信チャネルを再バインドします。 非アクティブ状態の例としては、
FIN_WAIT
TIME_WAIT
などが挙げられます。
デフォルトではこのプロパティを有効にしないでください。 ソケットが使用不可の状態になっている時のみ使用してください。 ポートがまだ使用中の可能性があるため、Enterprise Manager が開始した後にのみこのプロパティを無効にしてください。 たとえば、同じマシン上のコレクタが既にポートにバインドされている場合、ポートは使用中です。
以下の手順に従います。
  1. <EM_Home>/config
    ディレクトリに移動します。
  2. IntroscopeEnterpriseManager.properties
    ファイルをテキスト エディタで開きます。
  3. 以下のプロパティを true に設定します。
    introscope.enterprisemanager.serversockets.reuseaddr
    デフォルト
    : false
  4. ファイルを保存して閉じます。
  5. Enterprise Manager を再起動します。
Enterprise Manager の SSL 通信の有効化
SSL サーバ ソケットを設定することにより、デフォルトの通信チャネルに加えて、Enterprise Manager のセキュアな通信チャネルを有効にすることができます。
注:
APM クラスタおよびコンポーネントでの SSL 通信の設定に関する詳細については、「TEC1308495」を参照してください。
以下の手順に従います。
  1. <EM_Home>/config
    ディレクトリに移動します。
  2. IntroscopeEnterpriseManager.properties
    ファイルをテキスト エディタで開きます。
  3. Enterprise Manager の通信チャネル プロパティに移動します。
  4. introscope.enterprisemanager.enabled.channels
    プロパティの 2 番目のオカレンスのコメントを解除して、チャネル 2 を有効にします。
    # Use this to enable both the default channel and secure channel. introscope.enterprisemanager.enabled.channels=channel1,channel2
  5. 他のすべての SSL プロパティを必要な値に変更します。 詳細については、「SSL プロパティ ルール」を参照してください。
  6. ファイルを保存して閉じます。
  7. Enterprise Manager を再起動します。
SSL プロパティ ルール
IntroscopeEnterpriseManager.properties
ファイル内の SSL 通信チャネル プロパティを設定する場合は、以下のルールに従います。
  • keyStore プロパティは、Enterprise Manager をクライアントに認証させるための証明書が含まれるキーストアの場所を示します。 Enterprise Manager のデフォルトのキーストアには、セキュアではない自己署名証明書が含まれています。 ただし、Workstation とエージェントは、デフォルトではサーバ証明書を検証しません。
  • keyStore プロパティは、絶対パスまたは
    config
    ディレクトリを基準にした相対パスのどちらかです。
  • needclientauth
    プロパティが
    true
    に設定されている場合、Enterprise Manager はクライアントに認証するよう要求します。
  • Enterprise Manager は、トラストストアを使用して設定する必要があります。
  • エージェントと Workstation は、Enterprise Manager によって信頼された証明書を含むキーストアを使用して設定する必要があります。
  • needclientauth
    プロパティが
    true
    に設定されている場合に trustStore が設定されていないと、Enterprise Manager は起動しません。 起動するには、trustStore プロパティの設定が必要です。
  • trustStore プロパティは、信頼できるクライアントの証明書を含むトラストストアの場所です。 このプロパティは、クライアントが認証を要求された場合に必要です。 トラストストアを指定しないと、すべてのクライアントが信頼されます。
  • ciphersuites プロパティを使用して、有効な暗号スイートを設定します。 このプロパティは、匿名認証を有効にしたり、データ暗号化を回避したりする場合に使用できます。
  • 匿名認証の場合、暗号スイートを以下に設定します。
    TLS_ECDH_anon_WITH_AES_128_CBC_SHA
    Java 6 および 7 の JRE で実行されているエージェントの場合
    TLS_DH_anon_WITH_AES_128_GCM_SHA256
    代用の Java 8 以降の JRE の場合
    例:
    introscope.enterprisemanager.ciphersuites.channel2=SSL_DH_anon_WITH_RC4_128_MD5
  • 特定の JSSE 実装には、匿名認証を使用できるいくつかの暗号スイートがあります。 匿名認証の暗号スイートは、名前に「
    anon
    」を含みます。 ただし、暗号スイートはクライアントとサーバで共通であり、両方で有効です。
  • データを暗号化しない暗号スイートを指定します。
    例:
    introscope.enterprisemanager.ciphersuites.channel2=SSL_RSA_WITH_NULL_SHA
例: セキュアな通信チャネルとセキュアでない通信チャネルの有効化
Enterprise Manager を SSL を使うように設定するには、セキュアな通信チャネルを有効にするように、
IntroscopeEnterpriseManager.properties
を設定します。 このセキュアなチャネルは、デフォルトのセキュアでないチャネルに加えて設定できます。
MOM とコレクタ
の間、または
MOM と WebView
の間の SSL 通信の設定はサポートされていません。
以下の設定例では、ポート 5001 にデフォルトのセキュアでないリスナを設定し、ポート 5443 にセキュアなリスナを設定します。
# The enabled communication channels. introscope.enterprisemanager.enabled.channels=channel1, channel2 # The default communication channel. introscope.enterprisemanager.serversocketfactory.channel1=com.wily.isengard.postofficehub.link.net.server.DefaultServerSocketFactory introscope.enterprisemanager.port.channel1=5001 # The secure communication channel. introscope.enterprisemanager.serversocketfactory.channel2=com.wily.isengard.postofficehub.link.net.server.SSLServerSocketFactory introscope.enterprisemanager.port.channel2=5443 # Location of a keystore containing certificates for authenticating the Enterprise Manager to clients. # Either an absolute path or a path relative to the config directory. # On Windows, backslashes must be escaped. For example: # introscope.enterprisemanager.keystore.channel1=C:\\Introscope\\config\\internal\\server\\keystore introscope.enterprisemanager.keystore.channel2=internal/server/keystore # The password for the KeyStore. # Set the following property to true to enable encryption. introscope.enterprisemanager.keypassword.channel2 # Once introscope.enterprisemanager.keypassword.channel2 is encrypted, # this property is automatically set to false. # To change the existing password, enter the new password and set this property to true. # Note: If this property is set to true and the password is not changed, the existing encrypted password will be encrypted again. # If password field for a new channel is configured, add the corresponding # plaintextpassword field and set it to true to enable encryption. introscope.enterprisemanager.keypassword.channel2.plaintextpassword=true introscope.enterprisemanager.keypassword.channel2=password # Location of a TrustStore containing trusted client certificates. # Either an absolute path or a path relative to the config directory. # On Windows, backslashes must be escaped. For example: # introscope.enterprisemanager.truststore.channel1=C:\\Introscope\\config\\internal\\server\\keystore # A TrustStore is only needed if client authentication is required. # Set this property to true to enable encryption of introscope.enterprisemanager.trustpassword.channel2 # Once introscope.enterprisemanager.trustpassword.channel2 is encrypted, # this property is automatically set to false. # To change the existing password, enter the new password and set this property to true. # Note: If this property is set to true and the password is not changed, the existing encrypted password will be encrypted again. # If password field for a new channel is configured, add the corresponding # plaintextpassword field and set it to true to enable encryption. # introscope.enterprisemanager.trustpassword.channel2.plaintextpassword=false # The password for the TrustStore #introscope.enterprisemanager.trustpassword.channel2=password # If no TrustStore is specified, the Enterprise Manager trusts all client certificates.
ファイアウォールを越えた Enterprise Manager との接続
HTTP トンネリングはデフォルトで有効になっています。 トンネリングにより、あるネットワークのデータをほかのネットワーク接続経由で送信できるようになります。
以下の手順に従います。
  1. Workstation では、Enterprise Manager の組み込み Web サーバのポートへの接続にトンネリング転送を使用します。
    デフォルト
    : 8081
  2. <EM_Home>/config
    ディレクトリに移動します。
  3. IntroscopeEnterpriseManager.properties
    ファイルをテキスト エディタで開きます。
  4. introscope.enterprisemanager.webserver.port
    プロパティを必要な Web サーバ ポートの値に変更します。
  5. ファイルを保存して閉じます。
  6. Web サーバを再起動します。
Enterprise Manager の WebView 通信の設定(SSL)
Enterprise Manager Web サーバは、SSL の HTTP トンネリングをサポートしています。 このセキュリティ対策は、Jetty Web サーバからアクセスされる
em-jetty-config.xml
ファイルによって実装されます。 この Web サーバは、Enterprise Manager に組み込まれています。 カスタム構成ファイルを使用して Jetty Web サーバを設定するには、
IntroscopeEnterpriseManager.properties
ファイルで次のプロパティのコメント化を解除します:
introscope.enterprisemanager.webserver.jetty.configurationFile=em-jetty-config.xml
Enterprise Manager は起動時に
<EM_Home>/config
ディレクトリからデフォルトの
em-jetty-config.xml
ファイルをロードします。このファイルは、ポート 8444 にセキュアなリスナを設定します。 このセキュアなリスナによって、Workstation、WebView、およびエージェントが Enterprise Manager Web サーバ経由で HTTPS トンネルを使用して Enterprise Manager にアクセスできます。
Enterprise Manager は、Enterprise Manager が Jetty 設定ファイルをロードしたときに、
introscope.enterprisemanager.webserver.port
プロパティで定義されているセキュアでないリスナを作成しません。 ただし、Jetty 設定ファイルにはセキュアでないリスナを設定できます。
introscope.webview.enterprisemanager.webserver.tcp.port
および
introscope.webview.enterprisemanager.rest.base
IntroscopeWebView.properties
ファイルで変更します(http から https)。
警告:
両方の
introscope.enterprisemanager.webserver.jetty.configurationFile
プロパティおよびセキュアでないリスナ ポートを
em-jetty-config.xml
ファイルでコメント解除すると、CA APM のセキュリティに悪影響が及ぶ可能性があります。 これらの設定を一緒に行う前に、組織のアプリケーション セキュリティ担当者に通知してください。
以下の手順に従います。
  1. <EM_Home>/config
    ディレクトリに移動します。
  2. em-jetty-config.xml
    ファイルをテキスト エディタで開きます。
  3. introscope.enterprisemanager.webserver.jetty.configurationFile
    プロパティのコメントを外して、ファイルをアクティブにします。
  4. Jetty ファイル内の Web サーバ プロパティを必要な値に変更します。
  5. em-jetty-config.xml
    ファイルで HTTPS が有効になっていることを確認します。 ポート属性が、次のように設定されていることを確認します。
    <Set name="port">8444</Set>
  6. (オプション) HTTPS プロトコルを
    IntroscopeWebview.properties
    以下を MOM のホスト名または IP アドレスに設定します。
    EM_HOST
    を MOM のホスト名または IP アドレスに設定します。以下に例を示します。
    introscope.webview.enterprisemanager.rest.base=https://{EM_HOST}:8444/apm/appmap
    HTTPS を使用する場合、Enterprise Manager が信頼された証明書を使用していて、WebView がその証明書を信頼できると認識していることを確認します。 詳細については、KB 記事「Team Center - ログイン後のブランク ページ、ステータス コード 503、SSLHandshakeException」を参照してください。
  7. ファイルを保存して閉じます。
  8. Web サーバを再起動します。
em-jetty-config.xml
ファイルの名前および場所を設定するには、
IntroscopeEnterpriseManager.properties
ファイル内の
introscope.enterprisemanager.webserver.jetty.configurationFile
プロパティを使用します。
SSL 用の Jetty 設定オプション
重要:
<EM_Home>/config
ディレクトリにあるデフォルトの Jetty 設定ファイル(
em-jetty-config.xml
)を使用して、SSL のコンポーネントの多くを変更することができます。 例:
  • HTTPS ポートをデフォルトの 8444 から変更するには、port 属性の値を変更します。
    Example: <Set name="port">8444</Set>
  • デフォルトでは、SSL リスナは
    /internal/server/keystore
    キーストア パスを使用するように設定されます。 これは
    /config
    ディレクトリを基準にした相対パスです。 このキーストアには、信頼されない自己署名証明書が入っています。 キーストアは、認識している認証局(CA)の証明書が含まれるキーストアと置き換えることができます。
  • デフォルトの keystorePassword は
    password
    です。
    em-jetty-config.xml
    および
    webview-jetty-config.xml
    内のクリア テキスト パスワードはデフォルトでは難読化されます。 難読化されたパスワードは、
    OBF:
    で始まります。
    OBF:
    を取り除くことで、プレーン テキスト パスワードになります。 SSL の設定の詳細については、https://wiki.eclipse.org/Jetty/Howto/Configure_SSL を参照してください。
  • デフォルトでは、SSL は自己署名証明書を受け入れるように設定されます。 SSL は、クライアントの URL 内のホスト名がデジタル証明書のホスト名に一致することを検証しません。 この設定は、スタンドアロン Enterprise Manager のみをテストするのに十分です。 この設定により、デフォルトのキーストアの信頼されていない証明書を使用して、SSL がデフォルトで機能します。 安全性の高い認証を必要とする場合は、信頼できる証明書を含むキーストアを作成します。
    Enterprise Manager は SSL を介した通信時にはクライアントにもなります。 Enterprise Manager には、Java トラストストア内の正しいホスト名を持つ有効な証明書または信頼された自己署名証明書が必要です。 有効な証明書を使用する必要があります。 テスト目的では、自己署名証明書を使用できますが、ホスト名およびドメインの証明書を生成する必要があります。 グローバル Java トラストストアに証明書を追加します。 クライアントとしての Enterprise Manager では、信頼できるサーバの検証にグローバル Java トラストストアが使用されます。
    実稼働環境では、承認された認証機関からの有効な証明書が必要です。
    その後、XML 内の以下の属性を設定し、デフォルトのキーストアを独自のキーストアに置き換えます。
    <Set name="KeyStorePath"> <SystemProperty name="introscope.config" default="./config" />/internal/server/keystore </Set> <Set name="KeyStorePassword">password</Set> <Set name="validateCerts">false</Set>
  • 次のように、クライアント認証を要求するクライアント証明書を含むトラストストアを作成することもできます。
    <Set name="TrustStorePath"> <SystemProperty name="introscope.config" default="./config" />/internal/server/keystore </Set> <Set name="TrustStorePassword">password</Set> <Set name="needClientAuth">true</Set>
  • If
    validateCerts
    が以下の値に設定されている場合
    true
    以下の設定を使用します。
    • 個別のキーストアとトラストストアを使用します。
      KeyStorePath
      TrustStorePath
      の設定は異なるファイルを参照します。
    • 検証可能な証明書(ルート CA 証明書以外)のみをキーストアに格納する必要があります。 通常、これはホスト マシンの証明書と秘密鍵およびその中間 CA 証明書です。
    • ルート CA 証明書、または検証できない中間 CA 証明書は、トラストストアに格納する必要があります。
    • em-jetty-config.xml
      を変更し、適切な検証方法を有効にします。 この変更は、以下の両方またはいずれか適切な方の設定を有効にする必要があることを意味します。
      <Set name="enableCRLDP">true</Set>
      - この検証では、X.509 証明書の拡張として指定された証明書失効リスト ファイル URL を使用します。
      <Set name="enableOCSP">true</Set>
      - この検証では OCSP レスポンダを使用します。 この OCSP レスポンダ URL は、拡張として X.509 証明書で指定することもできます。 証明書でこの OCSP レスポンダ URL が定義されていない場合は、
      <Set name="ocspResponderURL">http://example.com/ocsp</Set>
      で指定することができます。
      詳細については、Jetty 9.4 SslContextFactory クラスのドキュメントを参照してください。
  • クライアント認証が必要な場合は、証明書を含むキーストアを使って、エージェントと Workstation を設定します。 Enterprise Manager Web サーバは、この証明書を信頼する必要があります。
    除外される暗号スイートを設定するには、
    excludeCipherSuites
    属性に暗号スイートのリストを設定します。
<Set name="excludeCipherSuites"> <Array type="java.lang.String"> <Item>SSL_DH_anon_WITH_RC4_128_MD5</Item> </Array> </Set>
SSL を使用するには、エージェントと Workstation の暗号スイートが有効で、Enterprise Manager と共通のものである必要があります。 以下のアクションに対して、有効な暗号スイートを制限することができます。
    • 弱い暗号スイートの脆弱性の防止
    • 匿名接続の許可
    • データの非暗号化
  • 承認されるプロトコルのリストをカスタマイズする必要がある場合は、上記の例で示されているように、
    em-jetty-config.xml
    および
    webview-jetty-config.xml
    ファイルで
    <Item>
    タグにプロトコルを定義します。
    <Set name="includeProtocols">
    <Array type="java.lang.String">
    <Item>TLSv1.2</Item>
    <Item>TLSv1.1</Item>
    </Array>
    </Set>
  • Enterprise Manager は
    maxThreads
    プロパティを使用して、Enterprise Manager が処理できる HTTPS エージェント接続の数を制限します。 十分なスレッドがない場合、Enterprise Manager は、接続されたエージェントやエージェントからのプロセス メトリックを認識しません。
  • HTTPS を使用する場合、Enterprise Manager は
    maxThreads
    プロパティで設定されたエージェント数のみを処理します。 許可されているエージェント接続の数は、
    apm-events-thresholds-config.xml
    ファイルの
    introscope.enterprisemanager.agent.connection.limit
    プロパティで設定されます。
    maxThreads
    の値が
    introscope.enterprisemanager.agent.connection.limit
    の値以上であることを確認します。 HTTPS を使用して接続するためのスレッドが不足している場合、一部のエージェントはクライアントに表示されないか、またはメトリックをレポートしません。
CEM コンソールのデフォルト要求ヘッダ サイズのリセット
CEM コンソールへのアクセス時に空白のページが表示されることがあるような場合は、要求ヘッダ サイズ制限のデフォルト値(8 KB)をリセットします。 ヘッダ サイズ制限のリセットは、Jetty 設定ファイルで行います。
以下の手順に従います。
  1. MOM 上の
    <EM_Home>/config
    ディレクトリに移動し、
    em-jetty-config.xml
    ファイルをテキスト エディタで開きます。
  2. 以下の行を含むセクションを見つけます。
    <New class="org.eclipse.jetty.server.HttpConfiguration">
  3. HttpConfiguration
    プロパティを以下の値に変更します。
    <Set name="requestHeaderSize">16384</Set>
  4. ファイルを保存して閉じます。
  5. 各 MOM およびコレクタ上の
    IntroscopeEnterpriseManager.properties
    ファイルの場所に移動します。
  6. このプロパティで、以下の行のコメントを外します。
    introscope.enterprisemanager.webserver.jetty.configurationFile=em-jetty-config.xml
  7. ファイルを保存して閉じます。
  8. Web サーバを再起動します。