Certificate Generation Utility for VMware Validated Design for Software-Defined Data Center 6.x
search cancel

Certificate Generation Utility for VMware Validated Design for Software-Defined Data Center 6.x

book

Article ID: 322379

calendar_today

Updated On:

Products

VMware VMware Cloud Foundation

Issue/Introduction

About Certificate Generation Utility for VMware Validated Designs

The Certificate Generation Utility for VMware Validated Designs (CertGenVVD) is a PowerShell script that you can use to generate custom certificates for the products that you use to build a Software-Defined Data Center (SDDC) based on VMware Validated Design for Software-Defined Data Center. Use the utility to reduce the number of steps for end-to-end certificate replacement.

CertGenVVD is written in PowerShell. It operates according to the settings in a configuration file and generates custom SSL certificates that can be signed by the following enterprise certificate authorities (CAs):

  • Microsoft Certificate Authority

For information about certificate replacement during SDDC deployment, see VMware Validated Design Architecture and Design and VMware Validated Design Planning and Preparation from the VMware Validated Designs Documentation.

What's new in the CertGenVVD utility?

Version 6.0 of the CertGenVVD utility provides the following new features:

  • Support for generating certificates required for the Solution documentation in VMware Validated Design 6.x

Supported platforms

The CertGenVVD utility requires a Windows operating system with the following installed.

Platform ComponentRequired Version 
Operating systemWindows Server 2012 R2, 2016 or 2019
OpenSSL1.0.2q or later
Visual C++ Redistributable Packages2013

OpenSSL Notes

CertGenVVD requires an OpenSSL binary for Windows, which can be compiled from OpenSSL.org. Additionally, the OpenSSL Wiki page (https://wiki.openssl.org/index.php/Binaries) has a list of pre-compiled windows binaries compiled by the 3rd parties. Read all security disclosures and disclaimers when using binaries compiled by 3rd parties. The recommended 3rd party binary is Win64 OpenSSL v1.0.2q Light since this does not include the unnecessary OpenSSL source code.

Before executing CertGenVVD, ensure that the path for the OpenSSL binary for Windows is set in the PATH environment variable and that the Microsoft Visual C++ Redistributable Packages for Visual Studio 2013 is installed. 
 

Compatibility

This CertGenVVD utility is compatible with, and referenced in the documentation for specific versions of VMware Validated Design for Software-Defined Data Center & VMware Cloud Foundation.

Product Version
VMware Validated Design for Software-Defined Data Center 6.x
VMware Cloud Foundation 4.x
VMware Cloud Foundation 3.10


Utility File Structure

The CertGenVVD utility consists of a PowerShell script and configuration files that you can update according to the requirements of your environment.

File or FolderDescription
CertgenVVD-6.0.version.ps1This PowerShell script generate certificates.
RegionA-Hosts.csvConfiguration CSV to match a VMware Validated Design Region A. These can be used as a sample for your environment.
RegionB-Hosts.csvConfiguration CSV to match a VMware Validated Design Region B. These can be used as a sample for your environment.

 


 



Symptoms:
Your VMware SDDC environment requires custom SSL certificates that must be signed by a trusted CA, you can use the CertGenVVD tool to generate a Certificate Signing Request (CSR) and have it signed.

Environment

VMware Cloud Foundation 3.10.x
VMware Cloud Foundation 4.x
VMware Validated Design for Software-Defined Data Center (SDDC)

Resolution

Prerequisites

To run the CertGenVVD utility, you must meet specific requirements on the Windows system on which you run the utility.

  • Verify that the account that you use to log in has administrative privileges.

Although non-administrator users can download and launch the tool, operations may fail if you do not have the correct permissions.

  • Configure the PowerShell execution policy with the permissions required to run the commands.
    1. Run the Execute Get-ExecutionPolicycommand to get the active execution policy.
    2. If the Execute Get-ExecutionPolicycommand returns Restricted, run the Set-ExecutionPolicy RemoteSigned command.
  • Create a Microsoft Certificate Authority template, called VMware, that you use to generate the certificates for the SDDC management components. See 
https://docs.vmware.com/en/VMware-Validated-Design/6.0/sddc-deployment-of-the-management-domain-in-the-first-region/GUID-8C4CA6F7-CEE8-45C9-83B4-09DD3EC5FFB0.html for template creation instructions.

Obtain the CertGenVVD utility

  1. Download the CertGenVVD tool.
  2. Copy the tool to a Windows virtual machine that has access to the infrastructure.
  3. Extract the .zip to any folder and preserve the folder structure.

Use the CertGenVVD utility with VMware Validated Design

To use the CertGenVVD tool with versions 6.0 of VMware Validated Design, from the Attachments section download the version-specific .zip that contains the configuration files for the version, and then extract and replace the content to a local directory.

Create Configuration Files

  1. Edit the csv files included in the attached bundle to match your environment. The column descriptions are:
ColumnDescription
NameDescription of each row. This will not be used in the configuration file and should not be altered.
CommonNameFQDN of the common name to be used in the cert. For load balanced components this should be the FQDN of the load balancer VIP. For single node components this should be the FQDN of the node.
SAN*FQDNs of additional node to be added as SAN attributes in addition to the Common Name. For load balanced components this would be the FQDN of each node.

Use the CertGenVVD utility to generate CA-signed certificates from an online Microsoft CA

Note: You must run CertGenVVD from a machine that is a member of the Microsoft Windows domain tha certificate authority is on.
 
  1. Open a Windows PowerShell prompt as an administrator and navigate to the directory where you extracted the attached .zip.
  2. Run the PowerShell script to launch the menu.
    .\CertGenVVD-6.0.ps1
  3. Select Option 1 to generate all config files, Certificate Signing Requests (CSRs) and certificates from an online Microsoft Root CA.
  4. When prompted, select the path to the relevant csv file containing the hostnames for which you require certificates.
  5. When prompted, enter the password to be used to encrypt the PKCS#12 certificates.

 

The certificates are signed by a Microsoft CA according to the requirements of the validated design.

The generated certificates are saved to the certgenvvd_home_dir\SignedByMSCACertsfolder in multiple formats according to the certificate requirements of the SDDC management components, that is, in X.509, PEM, PKCS#12 and PKCS#7.

The CertGenVVD utility configures the certificate chain files with the password that you specified during the generation.
 

Use the CertGenVVD utility to create certificates that are signed by an intermediate certificate authority

CertGenVVD supports intermediate Microsoft certificate authorities and does not need access to the root certificate authority. CertGenVVD concatenates the certificates of all of the certificate authorities into the certificate chain.

  1. Run the PowerShell script to launch the menu.
    .\CertGenVVD-6.0.ps1
  2. Select Option 2 to generate all config files, Certificate Signing Requests (CSRs) and certificates from an online Microsoft Intermediate CA.
  3. When prompted, select the path to the relevant csv file containing the hostnames for which you require certificates.
  4. When prompted, enter the intermediate CA path.

Note: Inspect the intermediate CA certificate and look for the "Issued By" value. Full path will be "Issuing-CA-FQDN\Issued-By-Value."


Use the CertGenVVD utility to create certificate requests (CSRs) to request certificates from an offline or third-party CA

  1. Run the PowerShell script to launch the menu..
    .\CertGenVVD-6.0.ps1
  2. Select Option 3 to generate all required CSR files for manual certificate requests from an offline or 3rd party CA
  3. When prompted, select the path to the relevant csv file containing the hostnames for which you require certificates.
  4. Locate the CSR files in the certgenvvd_home_dir\CSR folder and send it to the third-party CA to get signed certificates.The CA will send you signed .cer files for each CSR and the Root certificate.
  5. Rename the CA root certificate to Root64.cer.
  6. If there are multiple intermediate CAs, concatenate the certificates into one certificate chain file.
    copy IntermediateCAroot01.cer+IntermediateCAroot02.cer+RootCA.cer > Root64.cer
  7. Place the signed certificates in the corresponding certgenvvd_home_dir\ <product>directories, and the Root64.cerin certgenvvd_home_dir \Root64.
  8. To create the required certificate formats run the CertGenVVD utility again.
    .\CertGenVVD-6.0.ps1
  9. Select Option 4 to generate all required certificate formats.

Additional command options that are not related to certificate generation for VMware Validated Designs

Additional options available

OptionCommand
View helph
Validate the readiness of the machine on which you plan to run the CertGenVVD utility


Attachments

CertGen-6.2.003 get_app