Scenario: configuring TLS with custom self-signed certificates
About this task
The SSL connection between HCL Workload Automation for Z and other components
is established by using certificates. With TLS v1.2 you can use either default or custom
certificates; with TLS v1.3 you can use only custom certificates, which are more adequate to
the security standards of this version. The following scenario describes the steps to set up
TLS with custom self-signed certificates to connect HCL Workload Automation for Z with the Dynamic Workload Console, tracker, or dynamic domain manager for z/OS.
- On the z/OS system where the Z controller runs,
create the database and custom self-signed certificates by performing the following steps:
- From the directory where you want to store your certificates (in this example,
/u/tlscertificates
) run the gskkyman utility. - From the Database Menu, select option
1 Create new database
and follow the prompts to create the database (in this example,tlscontroller.kdb
).The following files are created:
tlscontroller.kdb
andtlscontroller.rdb
- From the Database Menu, select option
2 Open database
and provides the database name and related password. - From the Key Management Menu, select option
10 Store database password
to save the password in a stash file. - Create your own Certificate Authority (CA) for the Z controller (in
this example,
cacontroller
) by selecting the following options:6 - Create a self-signed certificate
1 - CA Certificate
1 - Certificate with an RSA key
3 - 4096-bit key
5 - SHA-512
- Create the certificate for the Z controller (in
this example,
certcontroller
) by selecting the following options:6 - Create a self-signed certificate
2 - User or server specifications
1 - Certificate with an RSA key
3 - 4096-bit key
5 - SHA-512
- Export the CA and certificate of the Z controller (in
this example,
cacontroller.crt
andcertcontroller.crt
) by selecting the following options from the Database Menu:1 - Manage keys and certificates
(select the certificate to be exported)6 - Export certificate to a file
2 - BASE64 – ASN.1 DER
- Repeat this same procedure to create the database (for example,
tlstracker.kdb
) and certificates (catracker.crt e certtracker.crt
) for the tracker, and export them to a stash file. - From the Database Menu of the Z controller
database (
tlscontroller.kdb
), import the tracker certificates (catracker.crt
andcerttracker.crt
) by selectingOption 7 - Import a certificate
. - From the Database Menu of the tracker database (
tlstracker.kdb
), import the Z controller certificates (cacontroller.crt
andcertcontroller.crt
) by selectingOption 7 - Import a certificate
. - From the Database Menu of the Z controller
database (
tlscontroller.kdb
), trust the CA of the tracker by selecting the following options:2 - Manage certificates
, then press Enter to show the list of labels and select the tracker CA (in this example,catracker
)2 - Set certificate trust status
, then select 1 to mark the tracker CA as trusted.
- From the Database Menu of the tracker database (
tlstracker.kdb
), trust the CA of the Z controller by selecting the following options:2 - Manage certificates
, then press Enter to show the list of labels and select the controller CA (in this example,cacontroller
)2 - Set certificate trust status
, then select 1 to mark the controller CA as trusted.
- Open each database that you created (
tlscontroller.kdb
andtlstracker.kdb
) and set the default certificate. From the Database Menu select the following options:1 - Manage keys and certificates
and select the certificate to be used as default (that is, certificatecertcontroller
intlstracker.kdb
and certificatecerttracker
intlscontroller.kdb
3 - Set key as default
- On the Z controller, set
the following parameters in the TCPOPTS
statement:
SSLKEYSTORE(/u/tlscertificates/tlscontroller.kdb) SSLKEYSTOREPSW(/u/tlscertificates/tlscontroller.sth)
- On the tracker, set the following parameters in the TCPOPTS
statement:
SSLKEYSTORE(/u/tlscertificates/tlstracker.kdb) SSLKEYSTOREPSW(/u/tlscertificates/tlstracker.sth)
For more details about how to configure the TCP/IP connection, see Security for TCP/IP connections. For more details about how to configure the HTTP connection, see Security for HTTP connections.
- From the directory where you want to store your certificates (in this example,
- To configure the TLS connection with the Dynamic Workload Console or DDM for z/OS,
perform the following steps:
- From the directory where you have stored your certificates (in this example,
/u/tlscertificates
) run the gskkyman utility. - From the Database Menu select option
2 - Open database
and open the tracker database (tlstracker.kdb
). - Export the keys and certificates to a file (
catracker.p12
andcerttracker.p12
, respectively) by selecting the following options:1 - Manage keys and certificates
, then select the certificate labels to be exported (catracker
andcerttracker
)7 - Export certificate and key to a file
3 - Binary PKCS #12 Version 3
- Transfer the keys and certificates (
catracker.p12
andcerttracker.p12
) to the workstation where the component to be connected is installed, by using the FTP protocol in binary mode. Transfer also the CA of the controller (cacontroller.crt
) by using FTP in ASCII mode. - From the workstation where the Dynamic Workload Console or dynamic domain manager for z/OS is
installed, import the
catracker.p12
andcerttracker.p12
files intoTWSServerKeyFile.jks
by using the keytool utility:keytool -importkeystore -deststorepass <password> -destkeypass <password> -destkeystore "<complete_path>\TWSServerKeyFile.jks" -srckeystore "<complete_path>\<filename>.p12" -srcstoretype PKCS12 -srcstorepass <password>
- Trust the Z controller
certificate
cacontroller.crt
inTWSServerTrustFile.jks
:
When promptedkeytool -importcert -trustcacerts -keystore "<complete_path>\TWSServerTrustFile.jks" -storepass <password> -file "<complete_path>\cacontroller.crt" -alias cacontroller
Trust this certificate?
, clickY
.
- From the directory where you have stored your certificates (in this example,
- According to the component whose connection you are configuring, perform the following step:
- For the Dynamic Workload Console v10.1
-
- Transfer the tracker certificate
certtracker.crt
by using FTP in ASCII mode to the workstation where the Dynamic Workload Console is installed. - From the workstation where the Dynamic Workload Console is
installed, import
certtracker.crt
into the trust storeTWSServerTrustFile.jks
by issuing the following command:keytool -importcert -trustcacerts -keystore "<complete_path>\TWSServerTrustFile.jks" -storepass <password> -file "<complete_path>\certtracker.crt " -alias certtracker
- In the
connectionFactory.xml
file setuseSsl="true"
, then restart the Dynamic Workload Console. For example:<connectionFactory id="EngineZ" jndiName="eis/tws/zconn/EngineZ"> <properties.ZConnectorAdapter hostName="10.999.49.333" portNumber="9919" useSsl="true">
- Transfer the tracker certificate
- For the dynamic domain manager for z/OS
-
- On your z/OS system, run gskkyman and from Database Menu select the
following options:
2 - Open database
, then selecttlscontroller.kdb
9 - Show the default key
In the file
C:\Program Files\IBM\DDM101\TWS\broker\config\BrokerWorkstation.properties
file, set the following property with the Common Name that you have defined earlier in this procedure:Broker.AuthorizedCNs= Server;ServerNew;<CommonName>
- Restart the dynamic domain manager for z/OS.
- On your z/OS system, run gskkyman and from Database Menu select the
following options: