This article explains how to resolve an SSL handshake failure preventing the enablement of the Operational Reports Server (ORS) when the SRM-RIB service cannot establish a secure connection due to trust store misconfiguration.
javax.net.ssl.SSLHandshakeException: Remote host terminated the handshakejava.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-emptyUnauthorizedException: HTTP 401 UnauthorizedThe srm-rib-jetty.conf file is incorrectly configured with JAVA_ADDITIONAL_2 pointing to the Portal's Jetty identity keystore. This keystore contains the Portal's private key but lacks the necessary trusted CA certificates (Trust Anchors), causing the outbound client to fail validation during the HTTPS handshake.
Perform the following steps to populate the trust store and update the configuration:
Extract Certificates: Extract the root and intermediate CA certificates from the SRM-RIB jetty keystore: openssl pkcs12 -in /opt/CA/srm-rib/jetty/etc/keystore -nokeys -passin pass:changeit -out /tmp/srm-rib-certs.pem
csplit -z -f /tmp/cert- -b '%02d.pem' /tmp/srm-rib-certs.pem '/-----BEGIN CERTIFICATE-----/' '{*}'
Verify Certificates: Identify the root and intermediate CA files: for f in /tmp/cert-*.pem; do echo "== $f =="; openssl x509 -in "$f" -noout -subject -issuer; done
Import as Trusted Entries: Import these certificates into the keystore referenced by JAVA_ADDITIONAL_2 (typically /opt/CA/PerformanceCenter/jetty/etc/keystore): keytool -importcert -noprompt -alias rwe-ica-2024 -file /tmp/cert-0X.pem -keystore /opt/CA/PerformanceCenter/jetty/etc/keystore -storepass changeit keytool -importcert -noprompt -alias rwe-root-ca-r23 -file /tmp/cert-0Y.pem -keystore /opt/CA/PerformanceCenter/jetty/etc/keystore -storepass changeit
Update Configuration: Add the missing system property to /opt/CA/srm-rib/conf/srm-rib-jetty.conf:
JAVA_ADDITIONAL_3=-Djavax.net.ssl.trustStorePassword=changeit
Restart Service: Restart the service to apply the changes: systemctl restart srm-rib.service
Verification: Verify the keystore contains the required entries: keytool -list -keystore /opt/CA/PerformanceCenter/jetty/etc/keystore -storepass changeit
The keystore should display the private key entry and the two new trusted certificates. Check the OperationalReportsServer.log to confirm the handshake is now successful.