Replacing certificates for VMware vRealize Network Insight

This blog will walk through how to create or replace the certificate for VMware vRealize Network Insight with a CA-signed certificate using the platform appliance.
Introduction
The following KB article provided by VMware illustrates the procedure for replacing the certificates for vRNI, VMware Official Documentation.
However, for those who are not Linux-savvy, this may be hard to follow. So I have decided to create this blog which will take you through an end-to-end process on how this can be achieved, without the need to use an external server or ESXi host to temporarily store the certificates.
For this blog, I will be using Microsoft Active Directory Certificate Services as my CA.
Tested Release Version
| Software | Version |
|---|---|
| vRNI | 6.5.1 |
Prerequisites
- vRNI platform and collector deployed
- vRNI support user credentials
- Basic Linux knowledge
- WinSCP client on Windows (https://winscp.net/eng/index.php)
Generate Private Key and CSR
-
SSH to vRNI Platform appliance using support user, either using a windows PowerShell or Linux terminal.
1ssh support@{{ vnri ip }} -
Create and enter into a folder for your cert creation workplace.
1mkdir ~/certs && cd ~/certs -
Create a config file to be used with OpenSSL to create CSR, and run the following command to create an empty file.
1vim vrni_config.cfg -
When using vim as the editor, to edit the file press
ikey to insert text. -
Paste in the following template, and edit [ req_distinguished_name ] and [alt_names] sections according to your environment.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16[req] distinguished_name = req_distinguished_name req_extensions = v3_req prompt = no [req_distinguished_name] C = GB ST = Greater London L = London O = THMB OU = VMware CN = vrni-p01-mp.thmb.local [v3_req] subjectAltName = @alt_names [alt_names] DNS.1 = vrni-mp.thmb.local DNS.2 = vrni-p01-mp.thmb.local -
When using vim as the editor, to save the file press the
esckey, and enter:wq!followed by thereturnkey. -
Create the key file, by running the following:
1openssl genrsa -out vrni_key.key 2048 -
Verify the generated key file type is correct, by running the following command:
1file vrni_key.keyThe output should look like the following, where the file type is “PEM RSA private key”:
1 2support@vrni-platform-release:~/certs$ file vrni_key.key vrni_key.key: PEM RSA private keyBugThere seems to be a bug in certain versions of OpenSSL where the file type of an RSA Private key shows to be “ASCII text”.Verify the private key format is RSA, by running the following command:
1openssl rsa -in vrni_key.key -checkThe output should contain the following
1 2RSA key ok writing RSA keyOnce the above has been verified. Proceed with the next step to “fix” the headers in the key file, by running the following command:
1 2sed -i 's/-----BEGIN PRIVATE KEY-----/-----BEGIN RSA PRIVATE KEY-----/g' vrni_key.key sed -i 's/-----END PRIVATE KEY-----/-----END RSA PRIVATE KEY-----/g' vrni_key.keyThe file type should now be “PEM RSA private key” this can be verified by running the following command:
1file vrni_key.key -
Create the CSR using the generated key file, by running the following:
1openssl req -new -key vrni_key.key -config vrni_config.cfg -out vrni_csr.csr -
Verify the CSR generated is correct:
1openssl req -text -noout -verify -in vrni_csr.csrThe output should look like the following:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47support@vrni-platform-release:~/certs$ openssl req -text -noout -verify -in vrni_csr.csr verify OK Certificate Request: Data: Version: 0 (0x0) Subject: C=GB, ST=Greater London, L=London, O=THMB, OU=VMware, CN=vrni-p01-mp.thmb.local Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:b6:ef:90:48:3e:50:2b:16:f2:4c:7f:cf:10:f1: 45:40:12:93:38:fb:18:cb:5c:11:e9:6a:d4:b2:19: 88:49:34:fb:86:d8:dc:48:93:ce:64:21:df:ff:b9: 0f:65:8a:cd:c8:af:7a:47:64:74:c8:52:2c:59:72: 06:1b:2c:1e:22:0f:4e:42:16:e0:3e:0f:85:ea:2e: ac:41:b5:a6:2c:9d:49:49:35:b3:21:27:73:11:c8: 7b:c0:7c:16:2e:01:25:f0:11:db:63:8d:cf:49:6b: ae:4f:b9:f9:08:30:fc:ae:d9:4d:1a:10:fa:23:c3: b1:c7:74:38:4c:fe:d4:5e:d3:b3:50:30:8b:c9:2f: 87:3c:30:ae:25:90:32:6c:63:33:5a:0e:fb:94:a4: b5:56:ab:94:a2:3e:d8:30:b3:49:7e:17:57:a7:17: e9:a0:0e:ea:ab:91:13:92:98:41:7b:c1:87:fb:03: 8f:e6:c2:57:e8:44:6c:db:04:ce:3a:65:f7:d1:f6: 95:be:ad:bf:be:e5:57:c3:52:4f:0b:21:f5:eb:de: 2c:15:a7:d8:33:bd:c6:fb:63:69:3c:ea:7d:7f:ce: bd:70:5f:cb:91:5c:5a:8f:c6:ef:52:18:90:83:5f: 32:7d Exponent: 65537 (0x10001) Attributes: Requested Extensions: X509v3 Subject Alternative Name: DNS:vrni-mp.thmb.local, DNS:vrni-p01-mp.thmb.local Signature Algorithm: sha256WithRSAEncryption ad:53:32:41:94:b1:56:93:98:fd:ac:b4:3f:61:df:cd:ce:af: f2:80:15:db:11:40:d8:1e:bd:15:75:88:48:24:42:78:e7:05: ba:1f:c8:a7:be:b1:54:dd:51:46:c2:91:4a:9d:b5:de:7d:8b: ae:24:38:bb:70:d1:f2:6a:d1:d9:b0:13:c4:90:e3:e4:84:11: 73:ae:3b:ca:4f:4f:91:a8:97:72:d7:94:e7:10:97:be:9b:df: 52:c3:37:eb:e2:86:db:cc:a1:8c:52:12:b6:94:39:14:ec:c1: ea:c6:c7:be:41:10:11:4d:3d:4c:65:8f:cf:1f:66:71:e9:f7: d4:14:18:b2:d5:a8:59:96:18:25:8c:e4:5e:d8:80:67:95:9c: 93:86:2d:d7:41:f8:51:3b:f6:6a:3e:df:da:66:3a:6a:24:29: 06:27:36:6a:33:d8:65:2f:96:f2:69:6c:b5:4a:b8:56:be:34: ec:21:fe:e4:21:1f:c6:93:93:44:db:54:b8:41:16:28:80:9f: 1d:1c:e8:dd:60:18:a8:4c:fb:5c:92:28:5c:f4:54:9a:90:1c: 3b:08:cf:28:93:c2:16:d9:1d:0d:e3:12:77:7b:86:a7:c6:5a: 50:73:f4:2a
Request Certificate from CA
-
Using the generated vrni_csr.csr, request the cert from your chosen Certificate Authority.
The following steps illustrate the certificate request using Microsoft CA running on windows server 2016
-
Navigate to the Microsoft Certification Authority server in your browser, and type the IP address followed by
certsrv.For example:
https://{{ IP }}/certsrv -
Click the Request a Certificate link.
-
Click the Advanced certificate request link.
-
Click Submit a certificate.
-
Paste the contents of your CSR file into the Saved Request text box.
-
Under Certificate Template, select Web Server from the drop-down menu.
-
Click Submit.
-
Select Base 64 encoded
-
Click Download Certificate and rename the downloaded certificate file to
vrni_cert.cer -
Download the CA root certificate, by navigating back to the homepage
https://{{ IP }}/certsrv``` -
Click Download a CA Certificate
-
Under Encoding method, select Base 64
-
Click Download CA Certificate and rename the downloaded certificate file to
ca_root_cert.cer -
Optional, if an Intermediate certificate is present, ensure this is downloaded as Base 64 and renamed to
ca_inter_cert.cer
Import CA Signed Certificate
-
Copy the
vrni_cert.cer,ca_root_cert.cerandca_inter_cert.cer(if present) files to the certs folder at ```/home/support/certs''' on the VRNI platform appliance. WinSCP can be used for the file transfer method with the support user credentials. -
Create the cert chain file using the
vrni_cert.cer,ca_root_cert.cerandca_inter_cert.cer(if present) files, by running the following command on the vrni platform appliance as support user:1 2 3 4 5cat \ /home/support/certs/vrni_cert.cer \ /home/support/certs/ca_inter_cert.cer \ /home/support/certs/ca_root_cert.cer \ > vrni_cert_chain.cer -
If there is a custom certificate already installed, we can remove it by running the following command on the vrni platform appliance as the consoleuser user:
1custom-cert remove -
Import the CA-signed certificate and private key files, by running the following command as the consoleuser user, ensure to enter the password when prompted:
1 2 3 4 5custom-cert copy --host localhost --user support --port 22 \ --path /home/support/certs/vrni_cert_chain.cer custom-cert copy --host localhost --user support --port 22 \ --path /home/support/certs/vrni_key.key -
Ensure the certs have been imported, by running the following command as the consoleuser user:
1custom-cert listOutput should look like the following:
1 2 3(cli) custom-cert list vrni_cert_chain.cer vrni_key.key -
If the above output is correct, apply the certificates, by running the following command:
1custom-cert apply
