This guide allows you to create a multi-domain/unified communications certificate (UCC) for securing multiple domains under 1 certificate, you secure a primary domain name and up to 99 additional Subject Alternative Names (SANs) in a single certificate.
Download and install the latest stable OpenSSL windows executable from https://slproweb.com/products/Win32OpenSSL.html
Create req config file
Create or reuse req.conf file as per below with SAN names (do not include lines at top and bottom)
--------------------------------------
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
C = GB
ST = <state or county>
L = <city>
O = <company name>
OU = <company name>
CN = <externaldomainname1>
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = externaldomainname2
DNS.2 = externaldomainname3
DNS.3 = externaldomainname4
DNS.4 = externaldomainname5
--------------------------------------
Generate CSR and Private Key
Run cmd as administrator
cd "C:\Program Files\OpenSSL-Win64\bin"
openssl req -new -out ucc.csr -newkey rsa:2048 -nodes -sha256 -keyout ucc.key.temp -config C:\TEMP\req.conf
*This creates the CSR, private key from the req.conf file created above*
Verify CSR
openssl req -noout -text -in ucc.csr
*Verify the CSR information is correct*
Verify Private Key
openssl rsa -in ucc.key.temp -check
*This will verify the private key, it should return an OK*
Use CSR on certificate authority to create a certificate file
Use CSR on third party certificate authority (GoDaddy/Digicert etc) with a Multiple Domain (UCC) SSL certificate or wildcard certificate that supports subdomains
Verify every domain via DNS, web page or email (DNS is creation of a TXT record in external domain name), download certificate file (.crt) and intermediate file.
Combine CRT and Private Key into PFX
Importing this crt file into IIS for example will not import the private key, you need to combine the private key (created earlier) and the downloaded crt file by the following command;
openssl pkcs12 -export -in C:\TEMP\shfghdsgfh32356.crt -inkey ucc.key.temp -out ucc.pfx
Create an export password then the PFX file should now be generated to import into IIS.
Using MMC > Add Snap-In > Certificates > Local Computer you can now import the PFX file into the Personal Store,you should see a key symbol on the certificate, if you do not see the key one of the steps above has been missed.
Finally, ensure that the intermediate certificate authority crt file that was also downloaded from the certificate authority is added to the the Intermediate Certification Authority > Certificates section of the certificates snap-in within MMC.
The key should now be visible with Server Certificates within IIS (May need to refresh) and can now be used within IIS HTTPS bindings.