Enable SSL for Machine Agent
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:
- The Controller SSL port:
- For SaaS Controllers: SSL port is 443
- For on-premises Controllers: Default SSL port is 8181, but you may configure the Controller to listen for SSL on another port
- The signature method for the Controller's SSL certificate:
- A publicly known certificate authority (CA) signed the certificate. This applies for DigiCert, Verisign, Thawte, and other commercial CAs.
- A CA internal to your organization signed the certificate. Some companies maintain internal certificate authorities to manage trust and encryption within their domain.
- The Controller uses a self-signed certificate.
Establish Trust for the Controller's SSL Certificate
To establish trust between the Machine Agent and the Splunk AppDynamics Controller, you must create an agent truststore that contains the root certificate for the authority that signed the Controller's certificate.
Secure the Machine Agent Truststore
We recommend you take the following security measures to prevent tampering with the Machine Agent truststore:
-
Secure the truststore file through filesystem permissions:
-
Make the Agent truststore readable by any user
-
Make the truststore owned by a privileged user
-
Make the truststore writable only by the specified privileged user
-
-
Secure the controller-info configuration file so that it is only readable by the Agent runtime user and only writable by a privileged user:
<machine_agent_home>/conf/controller-info.xml
Enable SSL for the Machine Agent
<?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