Configuring an HTTPS Connection with SSL in TIBCO BW Engine
This section outlines the steps to establish an HTTPS connection using a self-created PKCS12 certificate in TIBCO BusinessWorks (BW) Engine. These steps are also applicable when using certificates issued by a Certificate Authority (CA).
* 
This process is only compatible with the PKCS12 certificate format.
Steps to Establish an HTTPS Connection
1. Import a CA-issued certificate into PKCS12 KeyStore bundle:
Use the following command to import a CA-signed certificate into the PKCS12 KeyStore:
keytool -import -keystore <keystore_name.pkcs12.keystore> -storepass <password> -alias <your_alias> -file <certificate_file>
* 
It is recommended to use certificates issued by a public Certificate Authority (CA) in production environments to ensure the security of services. Self-signed certificates may be acceptable in non-production or development environments, depending on your organization's IT security policies.
2. Generate a keystore using Java key tool (optional step):
Run the following command from the command prompt to generate a KeyStore:
keytool -genkey -alias <alias_name> -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -keystore <keystore_name.pkcs12.keystore> -storepass <password>
-dname "CN=<hostname>, OU=EastCoast, O=MyComp Ltd, L=New York, ST=, C=US" -ext "SAN=dns:<hostname>,dns:<hostname>,ip:<ip_address>" -validity <validity>
Replace the placeholders, such as <alias_name>, <hostname>, and others, with appropriate values.
This command creates a KeyStore in the current folder.
The command generates a self-signed server certificate with RSA 2048 private key algorithm and places it in a PKCS12 bundle, compatible with Java PKCS12 KeyStore format
* 
If the KeyStore is self-signed or issued by a lesser-known CA, import it into the relevant Java runtime truststore used by Windchill. Use the following command:
keytool -importkeystore -destkeystore <path_to_java_truststore> -srckeystore <path_to_source_keystore> -srcstoretype pkcs12 -deststoretype jks
Define Global Variables for TIBCO Project
1. Pre-requisites:
Add the following property to designer.tra, bwengine.tra, and <APP_Name>_Process_Archive.tra when using HTTPComponent as Server Type.
Deploy the files and restart the application:
java.property.TIBCO_SECURITY_VENDOR=j2se
2. Create global variables for KeyStore path and password:
Create a global variable (WSCertKeyStorePath) to store the path to the PKCS12 KeyStore generated earlier. For example, /opt/esi/ws-server.pkcs12 on Linux OS or c:\esi\ws-server.pkcs12 on Windows OS.
Create another global variable (WSPassword) to store the password of the KeyStore.
Update TIBCO Project to Configure Web Server for SSL
1. Create a new Identity in TIBCO Designer:
Add a new resource from Resources > Add Resource > General > Identity.
In the Identity Configuration, select the Type as Identity File.
In URL, add the global variable created for the path.
Select File Type as PKCS12.
Click the earth icon next to Password.
Click Yes to change the field mode and provide the global variable as the password.
Apply the changes and save the project.
2. Enable SSL in HTTP connection in the Designer
Select Use SSL? in HTTP Connection.
In SSL Configuration for HTTPS Connections, select the Identity created in the previous step.
Select Server Type as Tomcat.
Apply the changes and save the project.
3. Modify GetWSDL.process:
For SSL configuration, leave the hostname and port blank in the Retrieve Resources activity.
* 
To enable detailed debugging, add the following properties in designer.tra, bwengine.tra and <APP_Name> _Process_Archive.tra to get more information on SSL configuration.
Trace.Task.*=true java.property.javax.net.debug=ssl,plaintext,record,handshake
Validate Changes Where Server is Set for SSL
1. Verify the setup for HTTPS connection:
Deploy the project with the HTTPS connection settings in TIBCO administrator.
Verify the highlighted entry in tracing logs of the process archive service in TIBCO Administrator UI.
2. Execute URL to ensure server is working over SSL:
Access the URL in a browser or using a curl command to ensure that the server is working over SSL.
Check the URL after changing the required details (hostname and port number):
https://<hostname>:<port_no>/ProcessDefinitions/DataProcessing/SOAPServer?wsdl
* 
When using a self-signed certificate, the browser may show a not secured warning. This warning does not appear when using a CA issued certificate.
這是否有幫助?