相互 TLS は、公開キーと秘密キーのペアを使用して相互に認証することにより、クライアントとサーバー間のトラフィックを暗号化する相互認証方式です。 

AppDynamics コントローラでは、Slack、PagerDuty、ServiceNow などのサードパーティ アプリケーションでコントローラを認証する場合、[Mutual TLS] を有効にします。この相互認証により、サードパーティ アプリケーションに送信されたアラート(HTTP リクエストアクション)が AppDynamics からのものであり、悪意のあるエンティティからのものではないことが確認されます。

相互 TLS 認証を構成するには、次の手順を実行します。

  1. TLS 証明書の証明書署名要求(CSR)を生成します
  2. 認証局から署名付き CSR を取得し、署名付き TLS 証明書をアップロードします
  3. HTTP リクエストアクションで相互 TLS 認証を有効にします

デフォルトでは、相互 TLS 構成機能は、Account Owner ロールを持つ AppDynamics コントローラテナント UI でのみ使用できます。カスタムロールを作成して、この機能を有効にすることもできます。ロールの詳細については、「カスタムロールの管理」を参照してください。

証明書署名要求の生成

相互 TLS 認証を構成するには、最初に証明書署名要求(CSR)を生成して TLS 証明書を取得する必要があります。

  1. AppDynamics コントローラテナント UI で、[Alert & Respond] > [Mutual TLS Configuration] をクリックします。
  2. [+ New Certificate Signing Request (CSR)] をクリックします。
  3. 次の詳細を入力します。
    1. Organization (Optional)。組織の正式名称。
    2. Department (Optional)。証明書を扱う部門の名前。
    3. Country。組織が所在する国を選択します。デフォルトで選択されている国は米国です。このフィールドは必須であり、空白のままにすることはできません。
    4. State (Optional)。組織が所在する都道府県の名前。
    5. City (Optional)。組織が所在する市区町村の名前。
  4. Generate CSR をクリックします。 
  5. [Download CSR] をクリックして .csr ファイルをダウンロードします。内容をコピーして .csr ファイルとして保存することもできます。

CSR を生成すると、AppDynamics では公開キーと秘密キーのペアが作成されます。公開キーは CSR で使用でき、秘密キーは AppDynamics の安全なキーストアにあります。

CSR の署名と署名付き TLS 証明書のアップロード

CSR ファイルをダウンロードしたら、選択した認証局(CA)から署名された CSR を取得する必要があります。これにより、署名付き TLS 証明書をアップロードできます。AppDynamics コントローラは、証明書チェーンもサポートしています。証明書チェーンは、リーフ証明書と中間証明書で構成されます。

認証局が提供する .ext ファイルを使用して中間証明書が作成される必要があります。

署名付き TLS 証明書を AppDynamics コントローラにアップロードするには、次の手順を実行します。

  1.  Upload New Client Certificate.
  2. 署名付き TLS 証明書(.pem ファイル)を直接アップロードするか、TLS 証明書の Base64 エンコードテキストをコピーしてアップロードします。

    証明書チェーンがある場合は、リーフ証明書と中間証明書のみを単一の .pem ファイルとしてアップロードします。または、リーフ証明書と中間証明書の Base64 エンコードテキストをコピーしてアップロードします。ルート証明書はアップロードしません。

次の例は、リーフ証明書と中間証明書で構成される証明書チェーンを示しています。

証明書チェーンの例

-----BEGIN CERTIFICATE-----
MIIEGTCCAgGgAwIBAgIJAL5ibUhpLjFHMA0GCSqGSIb3DQEBCwUAMB0xCzAJBgNV
BAYTAklOMQ4wDAYDVQQDDAVJTlRFUjAeFw0yMzAzMjExMDMyMDdaFw0yNDAzMjAx
MDMyMDdaMFIxCTAHBgNVBAcTADEJMAcGA1UECBMAMQswCQYDVQQGEwJJTjEJMAcG
A1UECxMAMQkwBwYDVQQKEwAxFzAVBgNVBAMTDmxvY2FsaG9zdDo4MDgwMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAweI7PCWPgGn0o2pN3vHuqaxfKFMD
aR1HuluhVxyUaWP4FHZXnW796Qmebpmt6YSmCTjrTVtt/M5Nds+39PDuj62F8duC
g/owQtN75MHdOTLm0c9x1r6o62pjmLPLlMJmCu28agI6uKJXYMXmz8CzKJaiBz/f
j4JZyVd/Yn9GPXD7Exhul3aJX75Un7DvQBATQYfBo6BmqQz3PfeFkag6p94MjBlY
x+qAL8KeamAwtYm2Qcp3QygU6I1KsDqFsd+UvaclrRRxaY4glfjxXUldZl9Ryk/P
JAiSSaZ54uSbD9qwbcLPop2EzOcLKbR7WcZsy+k9R54x/GRXsVBP35lruQIDAQAB
oycwJTAOBgNVHQ8BAf8EBAMCBJAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDQYJKoZI
hvcNAQELBQADggIBABGlU4RGHCLzPvsxz+QMImQ6qNuN0CbetIaMhh+aaWnGVXNe
f2W1xfzo+xOvFhHMcgJJmOrkawJQmXlBF/0nDOFuW5AjKabB0pMkGdRsfLuCY3Bq
b8VYWh7K0XGwpk6kRmtGppWXVW0W3i6aHwyKiTuFRxDq3WWlzBeozkd1rbyrL0bL
kvGS6uRkWzuzNNULM5pd+qbTV32SPHPzHxJijQwbIJeenkDHmazg9v7eJHUZFuyY
rh77+2DgG4t7hwhaEhdFz4PFZ34NowWI9TzQ3y2L/xMHog2jSrz9xsG0YwhmXNY0
CYj9eMRAbDzsGkzOsB6doN0R6+TnXlbxs6HqEXHf1MVCRKG405lS+qdO8Si6ZvEN
ccNSktSOnHGIXWbYL8zPxbhAbdOQGqMwnZCOXnUjtXMg0mAE0Dr7RijS587m0PkX
1Xh1LyU3xXtwd26v+i9Srh1kwmcJpItlKPcVMtdYRILVz0jGpd/J2CDcRuvHtzB1
vHFqiUni9IWYYBhRsWZTFnh5qO1+yc9tWgx0k7fVPc4haslwTa9K6SDtBkfl7WGt
RoW8nGXBmTA4rn8Zdow14C8c/zkaZCb6/6qUZFIq//Stnu+gJEjxG7tO6JFfTp/j
/NvwyXpozI8FnKyFBTVTVCBDKPceI7Z7xRq7e95ARBT2dApXXisPmLW5bDP3
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDzzCCAregAwIBAgIJALqp1BzVxWxiMA0GCSqGSIb3DQEBCwUAMBwxCzAJBgNV
BAYTAklOMQ0wCwYDVQQDDARyb290MB4XDTIzMDMyMTEwMjgxOVoXDTI0MDMyMDEw
MjgxOVowHTELMAkGA1UEBhMCSU4xDjAMBgNVBAMMBUlOVEVSMIICIjANBgkqhkiG
9w0BAQEFAAOCAg8AMIICCgKCAgEA0JZ/KXP4WyfYxLya5rMxTSVmHCVuWJeSYfsS
VoxOHGpksIE54Tv/g0fAjEgKbb/k6+dIwzVH5odKS/bkaQdc13HAPsSsGi0rl/ax
jK+iqhbBEXFqmyvF7hmBuA83j93dQCPTj7lYUcQxS7Kf6lh6hs+UFSLLDRBtI1ey
YbPnOljQ3jll0OdgH2MoeVXeKr/9+o2xtcXf1JfBVhMK0j8RRkNUfMn3lJJ8pUgu
6/ARfwA1esPYg4dNXUFT6CNtM8zqZuTMGdBND0yVXPagQ/KKJzBevrSvl5PIlLEV
nvwHEJtnc9sKUpK9SepAzvWdLAWhvsnaECo7tXosqF+tBHdv6J/XxhdYEjFngIz3
dJ3cqbXwzOtfEaGbCoNKsYsHiw92L/wFRE9RZIiLqBZIEOHzXXNi98s54jDU1YDR
A1Lc02Ie39vpvwiypfXEEUiuQOjbY8m4lcTiP+sahljFO3o9qoouoX4SV3YM3nSp
y1U+sSZB3mh8UCgPoPKoPl7e5JGPguMCO0NBR4hFeqREDYlcmg+50ZHaj6qUx7MD
hBi9B0p3w+fhgbyHdo0rDs75xja6M08PdHUs8Gu6D2+KLp5oyE1OaYGjcHwsdzlE
5+SJuUUD73s26JLlhDJ7EY/09pyVwnrx2PbWoeF3Tc5qX1mqBlk+1LImF6AQTb+c
1MSym3ECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
AQEAbIWhRxGN0KIQNwpn48FAXgiKeUWuNmPb+MqlifO0u/ko5Vh8xXQmUsrGCupI
W/lhRJSsAXI4B5Ss680pne55QLOY+6dXINnsObP5Xlz6PErugfYFIxddM8OEjn06
Qn/UhehtgBQlUbv34KSrdh1ylXIGLpS3YqeGWufTlMx1WJToVfnBbF6+QIiWjTSC
pt5nkHMph/oQcqTXJoxyzY6qwPx5+fYNuNDKvIJeWbR/NX/ukR/mMTb0kEFZfbaQ
OslSWnFEk15Wk6tZzMkiZlOqf/8qjYbwr5QgXVFUHCw4F5bQKdJIelMlzQrUrOxA
3GeUYyRbfeaE4l9De4geSrphAw==
-----END CERTIFICATE-----


Points to consider:

新しい TLS 証明書をアップロードする前に、次の点が満たされていることを確認してください。

  • 証明書は、.pem または .crt 形式である必要があります。
  • 証明書のエンコードスキームは Base64 である必要があります。
  • 証明書には有効期限が設定されている必要があります。
  • 証明書はクライアント証明書である必要があります。
  • 証明書は対応する CSR と一致する必要があります。
  • 証明書チェーンの場合:
    • すべての証明書は、単一の .pem ファイルを使用してアップロードする必要があります。 
    • 最初の証明書はリーフ証明書であり、その次が中間証明書である必要があります。各証明書は、後続の証明書によって署名される必要があります。
    • リーフ証明書は、クライアント証明書である必要があります。
    • リーフ証明書には、有効期限が設定されている必要があります。
    • リーフ証明書は、対応する CSR と一致する必要があります。
    • 証明書チェーンの長さは、appdynamics.controller.alerting.mtls.max.certificate.chain.length フラグで指定された長さを超えることはできません。「証明書チェーン長のコントローラ設定を参照してください。

署名付き TLS 証明書のアップロード中にエラーが発生した場合は、「相互 TLS 証明書の問題のトラブルシューティング」を参照してください。

TLS 証明書の表示

[Alert & Respond] > [Mutual TLS Configuration ] をクリックして、アップロードした TLS 証明書を表示します。[Download Certificate ] をクリックして、.pem ファイルをダウンロードすることもできます。.

まだ使用されていない CSR を生成した場合は、未使用の CSR を表示およびダウンロードできます。

HTTP リクエストアクションでの相互 TLS の有効化

TLS 証明書をアップロードしたら、HTTP リクエストアクションの相互 TLS 認証を有効にできます。AppDynamics は TLS 証明書を取得し、HTTP リクエストアクション(アラート)に添付します。AppDynamics からアラートを受信するように設定されているサードパーティのエンドポイントでは、証明書を使用してアラートが AppDynamics からのものであることを確認できます。

相互 TLS 認証を有効にするには、次の手順を実行します。

  1. [Alert & Respond] > [HTTP Request Templates] をクリックします。
  2. 以下のいずれかを実行。
  3. [Authentication] セクションで、[Also Turn on Mutual TLS ] オプションを選択します。

    このオプションは、TLS 証明書をアップロードした場合にのみ有効になります。

  4. [Save] をクリックします。

証明書チェーン長のコントローラ設定

証明書チェーンの最大長を指定できます。

証明書チェーンの長さを変更するには、次の手順を実行します。

  1. root ユーザのパスワードを使用して、コントローラの管理コンソールにログインします。「2023-10-19_05-04-05_Access the Administration Console」を参照してください。

    http://<controller host>:<port>/controller/admin.jsp

  2. [Controller Settings] を選択します。
  3. appdynamics.controller.alerting.mtls.max.certificate.chain.length フラグを見つけて、その値を更新します。デフォルト値は 2 です。
  4. Save をクリックします。