4.2.1 TLS Configuration
External TLS Communication
DF2: Browser and DF3: Kafka communication is over TLS only. No additional steps apart from certificate creation need to be performed. Refer to the next section for more info about certificate creation.
DF4: Consumer NF communication can be configured to use clear text or TLS through the GUI. Refer to the GUI guide for more info on how to do so.
Internal TLS Communication
In addition to the above communications, the customers can also opt to use TLS for internal OCNADD communication. To enable internal TLS, the following steps need to be undertaken:
-
Enable internal TLS in Helm Charts.
Change the value of global.ssl.intraTlsEnabled to true in theocnadd-custom-values.yaml. By default it is set to false.ssl: intraTlsEnabled:trueMake Sure to Remove the below line inocnadd-custom-values.yaml:Remove ocnaddadminsvc.ocnadd.admin.env.OCNADD_ADAPTER_SERVER_SSL: false (Before helm install or upgrade) Line:273 Remove ocnaddbackendrouter.ocnaddbackendrouter.env.OCNADD_BKNROUTER_CLIENT_SSL_USE_TS: true (Before helm upgrade) Line: 313 - Create TLS certificates for all the internal services.
- If the generate_certs script is used to create the certificates,
add entries for internal services in the
ssl_certs/default_values/valuesfile. Refer to the "Certificate and Secret Generation" section for more details. - The following entries should be added to the values file,
if not
present:
[zookeeper] client.commonName=zookeeper-zk server.commonName=zookeeper DNS.1=*.zookeeper.ocnadd-deploy.svc.occne-ocdd DNS.2=zookeeper [ocnaddbackendrouter] client.commonName=ocnaddbackendrouter-client server.commonName=ocnaddbackendrouter DNS.1=*.ocnaddbackendrouter.ocnadd-deploy.svc.occne-ocdd DNS.2=ocnaddbackendrouter [ocnaddadminservice] client.commonName=ocnaddadminservice-client server.commonName=ocnaddadminservice DNS.1=*.ocnaddadminservice.ocnadd-deploy.svc.occne-ocdd DNS.2=ocnaddadminservice [ocnaddalarm] client.commonName=ocnaddalarm-client server.commonName=ocnaddalarm DNS.1=*.ocnaddalarm.ocnadd-deploy.svc.occne-ocdd DNS.2=ocnaddalarm [ocnaddconfiguration] client.commonName=ocnaddconfiguration-client server.commonName=ocnaddconfiguration DNS.1=*.ocnaddconfiguration.ocnadd-deploy.svc.occne-ocdd DNS.2=ocnaddconfiguration [ocnaddhealthmonitoring] client.commonName=ocnaddhealthmonitoring-client server.commonName=ocnaddhealthmonitoring DNS.1=*.ocnaddhealthmonitoring.ocnadd-deploy.svc.occne-ocdd DNS.2=ocnaddhealthmonitoring [ocnaddscpaggregation] client.commonName=ocnaddscpaggregation-client server.commonName=ocnaddscpaggregation DNS.1=*.ocnaddscpaggregation.ocnadd-deploy.svc.occne-ocdd DNS.2=ocnaddscpaggregation [ocnaddnrfaggregation] client.commonName=ocnaddnrfaggregation-client server.commonName=ocnaddnrfaggregation DNS.1=*.ocnaddnrfaggregation.ocnadd-deploy.svc.occne-ocdd DNS.2=ocnaddnrfaggregationwhere,
ocnadd-deployis the namespace where OCNADD is deployed andoccne-ocddis the Kubernetes cluster name.
- If the generate_certs script is used to create the certificates,
add entries for internal services in the
Certificate and Secret Generation
The OCNADD services can communicate with each other as well as with external interfaces in both secure encrypted mode as well as in insecure mode. For establishing encrypted communication between the services, there is a necessity to generate TLS certificates and private keys for each microservice.The service certificate is generated using the provided CA certificate. For more information, refer to the Oracle Communications Network Analytics Data Director Installation, Upgrade, and Fault Recovery Guide.
- The NF producer includes OCNADD's CA certificate in their trust store.
- The third-party consumer certificate is also created by using the same OCNADD's CA.
Note:
The default certification creation assumes that internal TLS is enabled and
creates the certificates for all the OCNADD services. The customers can choose to delete surplus entries from
ssl_certs/default_values/values when not using internal
TLS. This reduces the number of certificates to be signed by the CA.
Below are sample values files with/without internal TLS enabled:
where:
- ocnadd-deploy : is the namespace where OCNADD is deployed
- occne-ocnadd : is the Kubernetes Cluster name
- [ocnaddthirdpartyconsumer] : is the OCNADD consumer
- [oraclenfproducer] : is the Oracle 5G NF/producer
Without Internal TLS
# Do not modify any keys in global section. Please edit only values present in global section.
# Edit only commonName value for Root CA. Do not modify key
# You can add multiple services in same manner as the sample services are added. The format should be as follows
#service name, common name for service and list of subject alternate name
#e.g.,
#[<service_name>]
#commonName=your.svc.common.name
#IP.1 = 127.0.0.1
#IP.2 = 10.20.30.40
#DNS.1 = localhost
#DNS.2 = svc.cluster.local
# Make sure to provide a single empty line (without space) after end of every section
# Do not add comments anywhere in this script to avoid parsing error
[global]
countryName=IN
stateOrProvinceName=KA
localityName=BLR
organizationName=ORACLE
organizationalUnitName=CGBU
defaultDays=90
##root_ca
commonName=*.ocnadd-deploy.svc.occne-ocnadd
[kafka-broker1]
client.commonName=kafka-broker1-zk
server.commonName=kafka-broker1
DNS.1=*.kafka-broker1.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker1
[kafka-broker2]
client.commonName=kafka-broker2-zk
server.commonName=kafka-broker2
DNS.1=*.kafka-broker2.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker2
[kafka-broker3]
client.commonName=kafka-broker3-zk
server.commonName=kafka-broker3
DNS.1=*.kafka-broker3.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker3
[kafka-broker4]
client.commonName=kafka-broker4-zk
server.commonName=kafka-broker4
DNS.1=*.kafka-broker4.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker4
[kafka-broker5]
client.commonName=kafka-broker5-zk
server.commonName=kafka-broker5
DNS.1=*.kafka-broker5.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker5
[kafka-broker6]
client.commonName=kafka-broker6-zk
server.commonName=kafka-broker6
DNS.1=*.kafka-broker6.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker6
[kafka-broker7]
client.commonName=kafka-broker7-zk
server.commonName=kafka-broker7
DNS.1=*.kafka-broker7.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker7
[egw]
client.commonName=egw-client
server.commonName=egw
DNS.1=*egw.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddegressgateway
[ocnaddthirdpartyconsumer]
server.commonName=ocnaddthirdpartyconsumer
DNS.1=*.ocnaddthirdpartyconsumer.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddthirdpartyconsumer
[oraclenfproducer]
client.commonName=oraclenfproducer
DNS.1=*.oraclenfproducer.ocnadd-deploy.svc.occne-ocnadd
DNS.2=oraclenfproducer
##end
With Internal TLS
# Do not modify any keys in global section. Please edit only values present in global section.
# Edit only commonName value for Root CA. Do not modify key
# You can add multiple services in same manner as the sample services are added. The format should be as follows
#service name, common name for service and list of subject alternate name
#e.g.,
#[<service_name>]
#commonName=your.svc.common.name
#IP.1 = 127.0.0.1
#IP.2 = 10.20.30.40
#DNS.1 = localhost
#DNS.2 = svc.cluster.local
# Make sure to provide a single empty line (without space) after end of every section
# Do not add comments anywhere in this script to avoid parsing error
[global]
countryName=IN
stateOrProvinceName=KA
localityName=BLR
organizationName=ORACLE
organizationalUnitName=CGBU
defaultDays=365
##root_ca
commonName=*.ocnadd-deploy.svc.occne-ocnadd
[kafka-broker1]
client.commonName=kafka-broker1-zk
server.commonName=kafka-broker1
DNS.1=*.kafka-broker1.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker1
[kafka-broker2]
client.commonName=kafka-broker2-zk
server.commonName=kafka-broker2
DNS.1=*.kafka-broker2.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker2
[kafka-broker3]
client.commonName=kafka-broker3-zk
server.commonName=kafka-broker3
DNS.1=*.kafka-broker3.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker3
[kafka-broker4]
client.commonName=kafka-broker4-zk
server.commonName=kafka-broker4
DNS.1=*.kafka-broker4.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker4
[kafka-broker5]
client.commonName=kafka-broker5-zk
server.commonName=kafka-broker5
DNS.1=*.kafka-broker5.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker5
[kafka-broker6]
client.commonName=kafka-broker6-zk
server.commonName=kafka-broker6
DNS.1=*.kafka-broker6.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker6
[kafka-broker7]
client.commonName=kafka-broker7-zk
server.commonName=kafka-broker7
DNS.1=*.kafka-broker7.ocnadd-deploy.svc.occne-ocnadd
DNS.2=kafka-broker7
[zookeeper]
client.commonName=zookeeper-zk
server.commonName=zookeeper
DNS.1=*.zookeeper.ocnadd-deploy.svc.occne-ocnadd
DNS.2=zookeeper
[egw]
client.commonName=egw-client
server.commonName=egw
DNS.1=*egw.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddegressgateway
[ocnaddthirdpartyconsumer]
client.commonName=ocnaddthirdpartyconsumer-client
server.commonName=ocnaddthirdpartyconsumer
DNS.1=*.ocnaddthirdpartyconsumer.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddthirdpartyconsumer
[oraclenfproducer]
client.commonName=oraclenfproducer
server.commonName=oraclenfproducer-server
DNS.1=*.oraclenfproducer.ocnadd-deploy.svc.occne-ocnadd
DNS.2=oraclenfproducer
[ocnaddbackendrouter]
client.commonName=ocnaddbackendrouter-client
server.commonName=ocnaddbackendrouter
DNS.1=*.ocnaddbackendrouter.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddbackendrouter
[ocnaddadminservice]
client.commonName=ocnaddadminservice-client
server.commonName=ocnaddadminservice
DNS.1=*.ocnaddadminservice.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddadminservice
[ocnaddalarm]
client.commonName=ocnaddalarm-client
server.commonName=ocnaddalarm
DNS.1=*.ocnaddalarm.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddalarm
[ocnaddconfiguration]
client.commonName=ocnaddconfiguration-client
server.commonName=ocnaddconfiguration
DNS.1=*.ocnaddconfiguration.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddconfiguration
[ocnaddhealthmonitoring]
client.commonName=ocnaddhealthmonitoring-client
server.commonName=ocnaddhealthmonitoring
DNS.1=*.ocnaddhealthmonitoring.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddhealthmonitoring
[ocnaddfilter]
client.commonName=ocnaddfilter-client
server.commonName=ocnaddfilter
DNS.1=*.ocnaddfilter.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddfilter
[ocnaddscpaggregation]
client.commonName=ocnaddscpaggregation-client
server.commonName=ocnaddscpaggregation
DNS.1=*.ocnaddscpaggregation.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddscpaggregation
[ocnaddnrfaggregation]
client.commonName=ocnaddnrfaggregation-client
server.commonName=ocnaddnrfaggregation
DNS.1=*.ocnaddnrfaggregation.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddnrfaggregation
[adapter]
client.commonName=adapter
server.commonName=adapter-server
DNS.1=*adapter.ocnadd-deploy.svc.occne-ocnadd
DNS.2=ocnaddconsumeradapter
##end
MTLS Configuration
The customers can opt to use MTLS for internal OCNADD communication. To enable internal MTLS, the following steps need to be undertaken:
-
Enable internal MTLS in Helm Charts.
Change the value of global.ssl.mTLS to true in the ocnadd-custom-values.yaml. By default it is set to false.ssl: intraTlsEnabled: true mTLS: trueMake Sure to Remove the below line inocnadd-custom-values.yaml:Remove ocnaddadminsvc.ocnadd.admin.env.OCNADD_ADAPTER_SERVER_SSL: false (Before helm install or upgrade) Line: 273 Remove ocnaddbackendrouter.ocnaddbackendrouter.env.OCNADD_BKNROUTER_CLIENT_SSL_USE_TS: true Before helm upgrade) Line: 313 -
The certificate creation step remains the same as mentioned in the "TLS Configuration" section. Please note it is mandatory to create certificates and secrets for MTLS to work.
Note:
- It is mandatory to create certificates and secrets for MTLS to work
- Make sure the above parameter is updated before deployment or upgrade.