Certificates
To expose access trough https protocol, the different components use Java keystore.
This file helps to configure keystore/truststore for the different modules.
Keystore vs Truststore
In short keystore can be used to store a public/private key that can be used to :
- sign the httpsprotocol
- crypt/decrypt JWT or SAML token
The truststore contains CA (certificate authority) to trust https requests.
Internal communication
As the different components exchange information between themselves, especially with keycloak, they have to trust the certificates of the others components. See the architecture diagram for details.
The different components that expose https endpoint :
- HPA Portal
- Broadcom Webview
- Keycloak
- Broadcom EM Channel for agent communication
The components that need a truststore internally :
- HPA Portal to consume Keycloak API And optionally (not activated by default) :
- Broadcom Webview to consume Broadcom EM REST API
- HPA extractor to consume Broadcom EM REST API
Another fixed public/private key is used :
- Keycloak hpa-hexagonSAML and Webview Service Provider
- Keycloak realm keys are stored in database. Keys can be exported through Keycloak GUI
- Broadcom Webview use the keystore : spprivatekey.jks with a default password : password
Some internal communication are not secured by default, restrict to 127.0.0.1 local loop :
- Broadcom EM Channel (Broadcom binary proprietary protocol), clients :
- Webview
- APMSQL
 
- Broadcom EM REST API, clients :
- Webview
- APMSQL
- HPA extractor
 
- JDBC protocol
Security.config file
#!/bin/bash
export HPA_BASE_HTTP=https
export HPA_HOST_PORT_PUBLIC=$HPA_EXTERNAL_DNS:${HPA_NGINX_PORT}
export HPA_URL_SERVER_PUBLIC=$HPA_BASE_HTTP://$HPA_HOST_PORT_PUBLIC${HPA_URL_CONTEXTPATH_WITH_LEADING_SLASH}
export HPA_URL_SERVER_PRIVATE=$HPA_BASE_HTTP://$HPA_SERVER_LISTENIP:$HPA_SERVER_PORT
export HPA_URL_EXTRACTOR=http://$HPA_EXTRACTOR_LISTENIP:$HPA_EXTRACTOR_PORT
export HPA_URL_EM_WEB=http://$HPA_EM_WEB_HOST:$HPA_EM_WEB_PORT
export HPA_URL_WEBVIEW_PUBLIC=$HPA_BASE_HTTP://$HPA_HOST_PORT_PUBLIC${HPA_URL_CONTEXTPATH_WITH_LEADING_SLASH}/introscope
export HPA_URL_WEBVIEW_PRIVATE=$HPA_BASE_HTTP://$HPA_EM_WEBVIEW_LISTENIP:$HPA_EM_WEBVIEW_PORT
export HPA_URL_KEYCLOAK_PUBLIC=$HPA_BASE_HTTP://$HPA_HOST_PORT_PUBLIC${HPA_URL_CONTEXTPATH_WITH_LEADING_SLASH}/keycloak
export HPA_URL_KEYCLOAK_PRIVATE=$HPA_BASE_HTTP://$HPA_KEYCLOAK_LISTENIP:$HPA_KEYCLOAK_PORT
#
# NGINX
#
export HPA_NGINX_CERTIFICATE=$HPA_CERTIFICATES_DIR/nginx_fullchain.pem
export HPA_NGINX_CERTIFICATE_KEY=$HPA_CERTIFICATES_DIR/nginx_privkey.pem
export HPA_NGINX_CERTIFICATE_PASSWORD_FILE=$HPA_CERTIFICATES_DIR/nginx_privkey.pass
#
# HPA truststore
#
export HPA_TRUSTSTORE=$HPA_CERTIFICATES_DIR/hpa_truststore.jks
export HPA_TRUSTSTORE_PWD=changeit
export HPA_TRUSTSTORE_TYPE=JKS
export HPA_TRUSTSTORE_OPTS="-Djavax.net.ssl.trustStore=$HPA_TRUSTSTORE -Djavax.net.ssl.trustStorePassword=$HPA_TRUSTSTORE_PWD -Djavax.net.ssl.trustStoreType=$HPA_TRUSTSTORE_TYPE"
#
# HPA keystore
#
export HPA_KEYSTORE=$HPA_CERTIFICATES_DIR/hpa_keystore.p12
export HPA_KEYSTORE_PWD=changeit
export HPA_KEYSTORE_TYPE=PKCS12
#
# Certificate are called, in pem format and named :
# <alias>_certificate.pem
# <alias>_private_key.pem
#
# KEYCLOAK
#
export HPA_KEYCLOAK_ALIAS=keycloak
export HPA_REALM_KEYCLOAK=$HPA_CERTIFICATES_DIR/keycloak_realm_hpa.pem
export HPA_REALM_KEYCLOAK_ALIAS=keycloack_hpa_realm
#
# SERVER
#
export HPA_SERVER_ALIAS=hpa_portal
#
# EXTRACTOR
#
export HPA_EXTRACTOR_ALIAS=hpa_extractor
#
# EM
#
export HPA_EM_WEB_ALIAS=introscope_em
export HPA_CHANNEL_ALIAS=introscope_channel
#
# WEBVIEW
#
export HPA_WEBVIEW_ALIAS=introscope_webview
#
# Admin role
#
export HPA_ROLE_ADMIN="Admin"
If restricted firewall rules
Check against your firewall rules if default ports are authorized
HPA_EM_PORT
HPA_KEYCLOAK_PORT
HPA_EM_WEBVIEW_PORT
HPA_SERVER_PORT
These ports must be opened to external network : end-user or calypso environments, see the firewall rules.
If restriction on internal server port
The others values should not be modified except if some of these ports are already used on the target HPA server.