- Cisco Nexus Data Broker Overview
- Deploying Cisco Nexus Data Broker
- Managing TLS Certificate, KeyStore, and TrustStore Files
- Logging in and Managing Cisco Nexus Data Broker
- Viewing and Adding Devices
- Configuring Cisco Nexus 9000 Series Switches
- Configuring the Nexus Data Broker
- Integrating Cisco Nexus Data Broker With Cisco ACI
- Viewing and Adding Flows
- Viewing Consistency Check
- Managing Users
- Configuring the Setup for a Use Case in the Centralized Mode
- Managing System
Managing TLS
Certificate, KeyStore, and TrustStore Files
This chapter contains the following sections:
- About the TLS Certificate, KeyStore, and TrustStore Files
- Preparing to Generate the TLS Credentials
- Creating a Public Certificate Using SSL Certification
About the TLS Certificate, KeyStore, and TrustStore Files
![]() Note | When Cisco Nexus Data Broker is started in a normal way, the connection to the device is HTTP. When Cisco Nexus Data Broker is started using the TLS protocol, the connection to the device is in HTTPS. |
![]() Note | To configure High Availability clusters in TLS mode, you need to run Cisco Nexus Data Broker in TLS mode for each instance of Cisco Nexus Data Broker. |
Enabling the TLS connections between Cisco Nexus Data Broker and the OpenFlow switches requires TLS KeyStore and TrustStore files. The TLS KeyStore and TLS TrustStore files are password protected.
Cisco Nexus Series switches connecting to Cisco Nexus Data Broker over OpenFlow require additional credentials, including Private Key, Certificate, and Certificate Authority (CA).
-
The TLS KeyStore file contains the private key and certificate information used by Cisco Nexus Data Broker.
-
The TLS TrustStore file contains the Certification Authority (CA) certificates used to sign the certificates on the connecting switches.
If TLS connections are required in your Cisco Nexus Data Broker implementation, all of the connections in the network must be TLS encrypted, and you must run Cisco Nexus Data Broker with TLS enabled. After Cisco Nexus Data Broker is started with TLS, you must run the TLS KeyStore password configuration command to provide the passwords for Cisco Nexus Data Broker to unlock the KeyStore files.
Preparing to Generate the TLS Credentials
OpenFlow switches require cryptographic configuration to enable TLS.
The NX-API protocol plugin now supports TLS for secure communication to the devices. You can connect to the NX-API protocol plugin on the secure port 443. All configuration, discovery, and statistics collection is done using secure communication. Cisco Nexus Data Broker should be configured with the required certificates and it should be started in the secure mode. When Cisco Nexus Data Broker is started in TLS mode, all devices support the TLS connection. The normal unencrypted connection to the switches is not accepted.
![]() Caution | Self-signed certificates are appropriate only for testing in small deployments. For additional security and more granular controls over individual certificate use and revocation, you should use certificates generated by your organization's Certificate Authority. In addition, you should never use the keys and certificates generated by this procedure in a production environment. |
Ensure that OpenSSL is installed on the Linux host where these steps will be performed.
1. Create a TLS directory using mkdir -p TLS command and then navigate to it using cd TLS command:
2. Set up the directories for your CA system to function within. Create three directories under mypersonalca using mkdir -p mypersonalca/<directory name> command. To initialize the serial file and the index.txt file, enter echo "01" > mypersonalca/serial command and touch mypersonalca/index.txt command respectively.
3. Create the CA configuration file (ca.cnf). Before saving the ca.cnf file, some changes need to be made that are specific to the devices. One critical change is to change the [alt_names] section in the ca.cnf file to be relevant to the device IP address, because these IP addresses should be specified in the configuration file. If you need more or fewer IP/DNS names, you can add or remove the lines.
4. Once the directory structure is created and the configuration file (ca.cnf) is saved on your disk, create the TLS certificate file.
5. Copy server.key and server.crt into respective devices and install by using the following commands:
6. Creating the TLS KeyStore File
7. Creating the TLS TrustStore File
8. Starting application with TLS
DETAILED STEPS
Creating a Public Certificate Using SSL Certification
Complete the following steps to create a public certificate using the SSL certification:
| Step 1 | Create a
certificate service request using the command:
openssl
req -newkey rsa:2048 -sha256 -keyout cert.key -keyform PEM -out cert.req
-outform PEM
Example: [root@RHEL-VM-NDB-ACI newcert]# openssl req -newkey rsa:2048 -sha256 -keyout cert.key -keyform PEM -out cert.req -outform PEM Generating a 2048 bit RSA private key ...............+++ ....................+++ writing new private key to 'cert.key' Enter PEM pass phrase: ⇒ ciscoxnc Verifying - Enter PEM pass phrase: ⇒ ciscoxnc ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]:US State or Province Name (full name) [Berkshire]:CA Locality Name (eg, city) [Newbury]:SJ Organization Name (eg, company) [My Company Ltd]:cisco Organizational Unit Name (eg, section) []:insbu Common Name (eg, your name or your server's hostname) []:RHEL-VM-NDB-ACI.cisco.com Email Address []:bosellap@cisco.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: [root@RHEL-VM-NDB-ACI newcert]# ls cert.key cert.req [root@RHEL-VM-NDB-ACI newcert]# |
| Step 2 | Create the
public certificates using Cisco internal certification Website,
sslcerts.cisco.com.
|
| Step 3 | Copy the
certificates to the Cisco Nexus Data Broker server.
There are 3 certificate files: root, intermediate, and domain. |
| Step 4 | Import the keys in to the keystore file. |
| Step 5 | Use the
command
openssl
pkcs12 -export -in <domain certificate> -inkey <gen key> >
inter_keystore to import the key. The input files are
domain
certificate and
cert.key and store it in
inter_keystore file:
Example: [root@RHEL-VM-NDB-ACI Demo]#openssl pkcs12 -export -in RHEL-VM-NDB-ACI.cisco.com.cer -inkey ../cert.key > inter_keystore Enter pass phrase for ../cert.key: Enter Export Password: Verifying - Enter Export Password: [root@RHEL-VM-NDB-ACI Demo]# [root@RHEL-VM-NDB-ACI Demo]# [root@RHEL-VM-NDB-ACI Demo]# ls inter_keystore RHEL-VM-NDB-ACI.cisco.com.cer RHEL-VM-NDB-ACI.cisco.com.zip test-root-ca-2048.cer test-ssl-ca.cer [root@RHEL-VM-NDB-ACI Demo]# |
| Step 6 | Import all the
certificates in to the
inter_keystore file
|
| Step 7 | Copy the
inter_keystore file as
keystore file under
xnc/configuration.
Example: [root@RHEL-VM-NDB-ACI configuration]# cp ../../cert/Demo/inter_keystore keystore [root@RHEL-VM-NDB-ACI configuration]# ls cert.key context.xml keystore logback.xml org.eclipse.osgi tomcat-logging.properties web.xml xncjgroups.xml config.ini generateWebUIcertificate.sh keystore_old org.eclipse.equinox.console.authentication.config startup tomcat-server.xml xncinfinispan.xml |
| Step 8 | Stop and start
the controller.
Example: [root@RHEL-VM-NDB-ACI configuration]# cd .. [root@RHEL-VM-NDB-ACI xnc]# [root@RHEL-VM-NDB-ACI xnc]# [root@RHEL-VM-NDB-ACI xnc]# [root@RHEL-VM-NDB-ACI xnc]# ./runxnc.sh -stop Controller with PID: 10383 -- Stopped! [root@RHEL-VM-NDB-ACI xnc]# ./runxnc.sh -status Doesn't seem any Controller daemon is currently running [root@RHEL-VM-NDB-ACI xnc]# [root@RHEL-VM-NDB-ACI xnc]# [root@RHEL-VM-NDB-ACI xnc]# [root@RHEL-VM-NDB-ACI xnc]# [root@RHEL-VM-NDB-ACI xnc]# ./runxnc.sh -start Running controller in background with PID: 11172, to connect to it please SSH to this host on port 2400 NDB GUI can be accessed using below URL: [https://10.16.206.160:8443] [root@RHEL-VM-NDB-ACI xnc]# [root@RHEL-VM-NDB-ACI xnc]# ./runxnc.sh -status Controller with PID: 11172 -- Running! [root@RHEL-VM-NDB-ACI xnc]# |
| Step 9 | In the user interface, click Add Exception... in the message window to connect to the Website. Completing the procedure outlined above creates a public certificate using the SSL certification. |


Feedback