Mutual Authentication
In addition to implementing Server Authentication, you can also implement mutual (client and server) authentication. Client authentication enables the Controller to ensure that only authorized and verified agents can establish connections. These procedures outline the workflow to implement mutual authentication.
Before Starting
- These agents support client authentication:
- Java Agent
- Database Agent
- Machine Agent
- Note: Excludes Azure PaaS environments, such as Azure App Services.
- First, it is good practice to set up and verify client authentication on one agent. After confirming that the client authentication is working for that agent, proceed with configuring additional agents.
- If you have a "hybrid" environment, with Server Authentication only for some agents and Server and Client Authentication for others, you might want to set up and configure multiple HTTP Listeners in Glassfish: one for Server Authentication only, and another for both Server and Client Authentication.
-
The procedures described on this page use the default key and keystore password ( changeit
- Change this default password, as described in "Change Keystore Password" under Controller SSL and Certificates.
- Use the new password when you perform these procedures.
- Instead of using plain text passwords in the procedures, you can specify encrypted or obscured passwords described in Encrypt Agent Credentials.
Set Up Mutual Authentication
These steps describe how to set up Mutual Authentication:
Set Up Server Authentication on Agents
To establish server authentication on agents, you must create an agent truststore that contains the root certificate for the authority that signed the Controller's certificate.
For each authorized agent:
Set Up a Client Keystore on the Agent
In this procedure, you create a signed certificate and import it into the client keystore. These steps use the Controller to sign the certificate, but you can also use a third-party Certificate Authority (CA).
Configure Agents to Access the Client Keystore
For each authorized agent: