Related pages:

This page describes how to configure the Machine Agent to connect to the Controller using SSL. It assumes that you use a SaaS Controller or have configured the on-premises Controller to use SSL. 

The Machine Agent supports extending and enforcing the SSL trust chain when in SSL mode.

Plan SSL Configuration

Gather this information:

Establish Trust for the Controller's SSL Certificate

To establish trust between the Machine Agent and the Controller, you must create an agent truststore that contains the root certificate for the authority that signed the Controller's certificate.

  1. Obtain the root certificate for the authority that signed the certificate for the Controller.
    1. For SaaS Controller deployments only: You can download the DigiCert root certificates from https://www.digicert.com/digicert-root-certificates.htm and the IdenTrust root certificate from https://www.identrust.com/identrust-commercial-root-ca-1. Ensure to include at least the following certificates:

            • DigiCert Global Root CA
            • DigiCert Global Root G2
            • DigiCert Global Root G3
            • IdenTrust Commercial Root CA 1
    2. For on-premises Controller deployments: Obtain one of the following root certificates:
            • The root certificate for the publicly known certificate authority (CA) that signed the certificate for your on-premises Controller.
            • The root certificate for the internal CA that signed the Controller certificate for your on-premises Controller.
  2. Run the Java keytool command to create the Agent truststore:

    keytool -import -alias rootCA -file <root_certificate_file_name> -keystore cacerts.jks -storepass <truststore_password>

    For example:

    keytool -import -alias rootCA -file /usr/home/appdynamics/DigicertGlobalRootCA.pem -keystore cacerts.jks -storepass MySecurePassnword

    Note the truststore password; you will need this later to configure the Machine Agent.

  3. Install the Agent truststore to the Agent configuration directory:

    <machine_agent_home>/conf/

Secure the Machine Agent Truststore

We recommend you take the following security measures to prevent tampering with the Machine Agent truststore:

<machine_agent_home>/conf/controller-info.xml

Enable SSL for the Machine Agent

  1. Configure the following system properties in the controller-info.xml: <machine_agent_home>/conf/controller-info.xml. See Machine Agent Configuration Properties for full details on each property.
  2. Restart the Machine Agent.

Sample controller-info.xml with SSL and Secure Credential Store Encryption Enabled

<?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 Certificate Extractor Utility

The Keystore Certificate Extractor Utility exports certificates from the Controller's Java keystore and writes them to an Agent truststore. You can run this utility with the Agent distribution on the Controller:

<controller_home>/appserver/glassfish/domains/domain1/appagent
  1. Execute kr.jar and include the following parameters:
  2. Install the Agent trust store to the Agent configuration directory:

    <machine_agent_home>/conf/