There are currently two mechanisms to receive mTLS certificates from the GDS when your registration has been reviewed and approved.
- Emailed PKCS12 Encrypted Certificates
- Certificate Signing Request (CSR)
You must select one of these options when you submit your registration; after your registration is submitted you will not be able to switch between options.
PKCS12 Encrypted Email Attachment
The first mechanism is the easiest — simply select the email option during registration and omit the CSR fields. If the registration form is valid, the GDS will return a PKCS12 password. Do not lose this password, it is the only time it is made available during the certificate issuance process.
Upon review approval, the GDS CA will generate a complete certificate including private keys and encrypt it using the PKCS12 password. After registering the public keys in the directory service, the GDS will then email the encrypted certificate as a ZIP file to the technical contact, or first available contact on the registration form.
After unzipping the email attachment, you should find a file named
<common_name>.p12; you can decrypt this file to extract the certificates as follows:
$ openssl pkcs12 -in <common_name>.p12 -out <common_name>.pem -nodes
You can also directly use the .zip file without decrypting or extracting it via the
Certificate Signing Requests
An alternative to certificate creation is to upload a certificate signing request (CSR). This mechanism is often preferable because it means that no private key material has to be transmitted accross the network and the private key can remain on secure hardware.
To generate a CSR using
openssl on the command line, first create a configuration file named
trisa.conf in your current working directory, replacing
example.com with the domain you plan to host your TRISA endpoint on:
[req] distinguished_name = dn_req req_extensions = v3ext_req prompt = no default_bits = 4096 [dn_req] CN = example.com O = [Organization] L = [City] ST = [State or Province (fully spelled out, no abbreviations)] C = [2 digit country code] [v3ext_req] basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment, nonRepudiation extendedKeyUsage = clientAuth, serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = example.com
Please carefully fill out the configuration for your certificate, this information must be correct and cannot be changed without reissuing the certificate. Also make sure that there are no spaces after the entries in the configuration!
Then run the following command, replacing
example.com with the domain name you will be using as your TRISA endpoint:
$ openssl req -new -newkey rsa:4096 -nodes -sha384 -config trisa.conf \ -keyout example.com.key -out example.com.csr
Your private key is now stored in
example.com.key — keep this private key safe — it is required for mTLS connections in your mTLS service and establishes trust on the TRISA network.
example.com.csr file contains your certificate signing request. Copy and paste the contents of this file including the
-----BEGIN CERTIFICATE REQUEST----- and
-----END CERTIFICATE REQUEST----- into your registration request.