Download PDF
Download page スタンドアロン マシン エージェントの SSL の有効化.
スタンドアロン マシン エージェントの SSL の有効化
このトピックでは、SSL を使用してコントローラに接続するように AppDynamics スタンドアロン マシン エージェントを設定する方法について説明します。SaaS コントローラを使用しているか、SSL を使用するようにオンプレミスコントローラを設定していることを前提としています。
スタンドアロン マシン エージェントは、SSL モード時の SSL 信頼チェーンの拡張および強制実行をサポートしています。
SSL 設定の計画
次の情報を用意します。
- コントローラの SSL ポート。
- SaaSコントローラの場合、SSLポートは443です。
- オンプレミスコントローラの場合、デフォルトのSSLポートは8181ですが、別のポートでSSLをリッスンするようにコントローラーを構成することもできます。
- コントローラの SSL 証明書の署名メソッド。
- パブリック証明機関(CA)が証明書に署名。DigiCert、Verisign、Thawteおよびその他の商用CAなど。
- 組織内部のCAが署名した証明書。一部の企業では内部の証明機関を保持し、その内部CAがドメイン内のトラストと暗号化を管理します。
- コントローラでは、自己署名証明書が使用されます。
コントローラのSSL証明書の信頼性を確立
スタンドアロン マシン エージェントと AppDynamics コントローラとの間で信頼関係を確立するには、コントローラの証明書に署名した機関のルート証明書を含むエージェントトラストストアを作成する必要があります。
- 次のいずれかのルート証明書を取得します。
- AppDynamics SaaS コントローラの DigiCert Global Root CA
- オンプレミスコントローラの証明書に署名したパブリック認証局(CA)のルート証明書
オンプレミスコントローラのコントローラ証明書に署名した内部 CA のルート証明書
Java keytool コマンドを実行して、エージェントトラストストアを作成します。
keytool -import -alias rootCA -file <root_certificate_file_name> -keystore cacerts.jks -storepass <truststore_password>
例:
keytool -import -alias rootCA -file /usr/home/appdynamics/DigicertGlobalRootCA.pem -keystore cacerts.jks -storepass MySecurePassnword
トラストストアのパスワードをメモします。これは、後でスタンドアロン マシン エージェントを設定するために必要になります。
エージェントのトラストストアをエージェント構成ディレクトリにインストールします。
<machine_agent_home>/conf/
スタンドアロン マシン エージェントのトラストストアの保護
AppDynamics では、スタンドアロン マシン エージェントのトラストストアの改ざんを防ぐため以下の安全対策を行うことを推奨しています。
ファイルシステムの権限を通じたtruststoreファイルの保護。
あらゆるユーザーにエージェントtruststoreの読み取りを許可。
権限のあるユーザーがtruststoreを所有。
指定された権限のあるユーザーのみにtruststoreの書き込みを制限。
controller-info 設定ファイルを保護して、読み取りはエージェントのランタイムユーザのみ、書き込みは権限のあるユーザのみに設定。
<machine_agent_home>/conf/controller-info.xml
スタンドアロン マシン エージェントの SSL の有効化
- controller-info.xml で次のシステムプロパティを設定します。
<machine_agent_home>/conf/controller-info.xml
。各プロパティの詳細については、「スタンドアロン マシン エージェントの設定プロパティ」の「SSL 構成プロパティ」を参照してください。コントローラホスト:コントローラ用に設定する証明書の共通名またはサブジェクト代替名(SAN)と同じにする必要があります。
<controller-host>common_name_in_certificate.com</controller-host>
コントローラポート:コントローラの SSL ポート。AppDynamics SaaSの場合は443。
<controller-port>443</controller-port>
コントローラの SSL の有効化: true。
<controller-ssl-enabled>true</controller-ssl-enabled>
コントローラの SSL のパスワード:エージェントトラストストアのプレーンテキストパスワード。
<controller-keystore-password>MySecurePassword</controller-keystore-password>
Secure Credential Store を有効にした場合、ここで入力するパスワードは暗号化されます。「エージェントの認証情報を暗号化する」を参照してください。
コントローラキーストアのファイル名:
<machine_agent home>/conf
からのエージェントトラストストアの相対パス。デフォルトの<machine_agent_home>/conf/cacerts.jks
以外のトラストストアを使用する場合は必須です。<controller-keystore-filename>../conf/cacerts.jks</controller-keystore-filename>
コントローラポートを指定し、スタンドアロン マシン エージェント起動スクリプトでコントローラ用 SSL を有効にできますが、
controller-info.xml
ファイルでトラストストアのパスワードとファイル名を指定する必要があります。
- スタンドアロン マシン エージェントを再起動します。
SSLとSecure Credential Storeの暗号化を有効化したcontroller-info.xml のサンプル
<?xml version="1.0" encoding="UTF-8"?>
<controller-info>
<controller-host>mycompany.saas.appdynamics.com</controller-host>
<controller-port>443</controller-port>
<controller-ssl-enabled>true</controller-ssl-enabled>
<!-- Encrypted Controller keystore / agent trust store password -->
<controller-keystore-password>Tw49bd0hdCMBoQ5pfMMuYA/cA5B4pouVPkv48ovRm6c=</controller-keystore-password>
<controller-keystore-filename>../../conf/cacerts.jks</controller-keystore-filename>
...
<!-- Secure Credential Store configuration -->
<!-- Enable the Secure Credential Store -->
<use-encrypted-credentials>true</use-encrypted-credentials>
<!-- Path to they secure credential keystore -->
<credential-store-filename>/opt/appdynamics/secretKeyStore</credential-store-filename>
<!-- Obfuscated secure credential keystore password -->
<credential-store-password>n/8GvAZsKk4gM3Z6g+XQ1w==</credential-store-password>
</controller-info>
Keystore証明書抽出ユーティリティ
Keystore 証明書抽出ユーティリティは、コントローラのJava Keystoreから証明書をエクスポートしてエージェントのtruststoreに書き込みます。コントローラのエージェント ディストリビューションでこのユーティリティを実行できます。
<controller_home>/appserver/glassfish/domains/domain1/appagent
kr.jar
を実行し、次のパラメータを渡します。コントローラのKeystoreへの完全なパス
<controller_home>/appserver/glassfish/domains/domain1/config/keystore.jks
CODE- トラストストア出力ファイル名。デフォルトでは、スタンドアロン マシン エージェントは
cacerts.jks
を検索します。 コントローラの証明書のパスワード(デフォルトで「changeit」)。パスワードを含まない場合、エクストラクターはパスワード「changeit」を出力されたtruststoreに適用。
java -jar kr.jar <controller_home>/appserver/glassfish/domains/domain1/config/keystore.jks cacerts.jks <controller_certificate_password>
CODE
エージェントのトラストストアをエージェント構成ディレクトリにインストールします。
<machine_agent_home>/conf/