Best practices for moving from default TCP mode to SSL/TLS in zone 3 between Control-M/Server and Control-M/Agent
Knowledge Article
Best practices for moving from default TCP mode to SSL/TLS in zone 3 between Control-M/Server and Control-M/Agent
Control-M/Agent for UNIX and Microsoft Windows
Control-M/Agent for UNIX and Microsoft Windows
Control-M/Server, Control-M/Agent ; all versions ; UNIX/Linux, Windows
Control-M/Agent for UNIX and Microsoft Windows
Control-M/Agent for UNIX and Microsoft Windows
Control-M/Server, Control-M/Agent ; all versions ; UNIX/Linux, Windows
What are the recommended steps to implement SSL/TLS in zone 3 between Control-M/Server and Control-M/Agents when all Agents are currently in TCP mode?
Important Considerations
The solution below is only used when no Control-M/Agents are in SSL/TLS mode. For environments where SSL/TLS is currently in use see article 000442490.
Because the Control-M/Server keystore is the same for communication with Agents (zone 3) and the EM (zone 2), if using zone 2 SSL/TLS, the EM certificate will also need to be updated.
To determine whether SSL/TLS is in use in zone 2:
In the Control-M Configuration Manager, right-click on the the relevant Control-M/Server.
Select Properties.
Open the Communication tab.
Under Communication -> Protocol: TCP or SSL will be shown.
What do I need to do when I need to add a new Agent after the Control-M/Server and existing Agents have had SSL/TLS applied?
The new Agent will be in TCP mode. To put the new Agent in SSL mode, apply the steps relevant to the Agent from the solution below.
Solution:
Make sure to use your organization's own Certificate Authority (CA), provided by your organization's security team, and not a third-party CA. This CA should be dedicated to Control-M and not allow unauthorized issuance. Each certificate issued for a Control-M product should contain a unique email address (e.g. hostname_component@domain).
Verify no Control-M/Agents use SSL/TLS communication with Control-M/Server:
Open the Control-M Configuration Manager (CCM).
If the SSL column is not currently showing, right click on any column header and select "Column chooser."
From the Column chooser dialog, drag the "SSL" column into the columns view.
Select each Control-M/Server in the tree on the left to view the Control-M/Agents in the middle pane.
Sort by the SSL column, and any Agents set to "Enabled" will need to be handled according to article 000442490
Export this list to a file for future reference: choose File -> Exports List
For each Control-M Server, perform the below steps to create a new certificate and keystore. A video demonstrating these steps can be found at https://www.youtube.com/watch?v=3Jz-to-0e50
Back up the existing SSL/TLS keystore, identified by the following commands:
The CSR, which needs to be sent to your security team in the next step, is generated at: Linux/Unix: $HOME/ctm_server/data/SSL/certificate_requests/<hostname>_YYYYMMDD_HHMMSS.csr Windows: <Control-M/Server Install Path>\data\SSL\certificate_requests\<hostname>_YYYYMMDD_HHMMSS.csr
The private key, which is used in step d to create a .p12 keystore, is generated at: Linux/Unix: $HOME/ctm_server/data/SSL/private_keys/<hostname>_YYYYMMDD_HHMMSS.pem Windows: <Control-M/Server Install Path>\data\SSL\private_keys\<hostname>_YYYYMMDD_HHMMSS.pem
Have your organization's security team use the internal CA and the CSR to issue a certificate.
UNIX/Linux: Back up and edit the following files: $HOME/data/SSL/cert/site.plc $HOME/data/SSL/cert/ns.plc In the [client] and [server] sections, ensure security_level=4
Windows: Backup and modify the following registry keys: HKEY_LOCAL_MACHINE\SOFTWARE\BMC Software\Control-M/Server\SecurityPolicy\site\client HKEY_LOCAL_MACHINE\SOFTWARE\BMC Software\Control-M/Server\SecurityPolicy\site\server HKEY_LOCAL_MACHINE\SOFTWARE\BMC Software\Control-M/Server\SecurityPolicy\ns\client HKEY_LOCAL_MACHINE\SOFTWARE\BMC Software\Control-M/Server\SecurityPolicy\ns\server Ensure security_level=4
Note: the configuration file must have a .json extension.
There will be no screen output from the command, unless there is an error, in which case the error will be displayed and the CSR file will be empty. The created CSR file will used in the next step.
Have your organization's security team use the internal CA and the CSR to issue a certificate.
Deploy the signed certificate and CA chain to the Agent with the following command:
Where "<signed_cert.pem>" is the certificate issued in the previous step in X.509 Base-64 encoded format, and "<ca_chain.pem>" Is the CA certificate chain which signed the certificate, also in X.509 Base-64 encoded format. See the following documentation for more details on this command.
The CSR, which needs to be sent to your security team in the next step, is generated at: Linux/Unix: $CONTROLM/data/SSL/certificate_requests/<hostname>_YYYYMMDD_HHMMSS.csr Windows: <Control-M/Agent Install Path>\data\SSL\certificate_requests\<hostname>_YYYYMMDD_HHMMSS.csr
The private key, which is used in step iv to create a .p12 keystore, is generated at: Linux/Unix: $CONTROLM/data/SSL/private_keys/<hostname>_YYYYMMDD_HHMMSS.pem Windows: <Control-M/Agent Install Path>\data\SSL\private_keys\<hostname>_YYYYMMDD_HHMMSS.pem
Have your organization's security team use the internal CA and the CSR to issue a certificate.
UNIX/Linux: Back up and edit the following files: $CONTROLM/data/SSL/cert/site.plc $CONTROLM/data/SSL/cert/ag.plc In the [server] section, ensure security_level=4
Windows: Backup and modify the following registry keys: HKEY_LOCAL_MACHINE\SOFTWARE\BMC Software\Control-M/Agent\SecurityPolicy\site\server HKEY_LOCAL_MACHINE\SOFTWARE\BMC Software\Control-M/Agent\SecurityPolicy\ag\server Ensure security_level=4
When convenient, use one of the following options to recycle each Agent.
When unable to use the API, use the CCM to recycle.
Right click on the Control-M/Agent.
Choose "Desired State"
Click "Recycle"
If prompted, click "Yes" to confirm.
Once all affected Control-M Servers and Agents have been recycled to use the new keystore, use one of the following options to enable SSL/TLS on each Agent.
If the Automation API version is lower than 9.0.21.200 and cannot be updated at this time, use the following steps in the Control-M Configuration Manager (CCM) to enable SSL for each agent:
Right click on Control-M/Agent
Choose "Properties"
Select the "Communication" tab
Change "Secure Socket Layer" to "Enabled"
Click "OK"
For Linux/Unix Control-M/Agents, verify the permissions on the security related files are set correctly.
For fully supported Control-M/Agent versions (9.0.21 and higher), run the following command as the Control-M/Agent user: $CONTROLM/toolbox/permission_check.sh --force
For other Control-M/Agent versions, see the alternate solution in article 000441965
Control-M/Agent for UNIX and Microsoft Windows
Control-M/Agent for UNIX and Microsoft Windows
Control-M/Server, Control-M/Agent ; all versions ; UNIX/Linux, Windows