Client Configuration¶
On TNSR, export the CA certificate, user certificate, and user certificate key. This can be done individually or by using a PKCS#12 archive export.
Exporting separate CA, client certificate, and client key files¶
When exporting these entries, place the resulting files in a secure place on a
client system, in a directory with appropriate permissions, readable only by the
user. Additionally, the private key file must only be readable by the user. For
this example, the files will be placed in ~/tnsr/
.
First, export the CA certificate. Copy and paste this into a local file, named
tnsr-restconf-CA.crt
:
tnsr# pki ca restconf-CA get
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
Next, export the user certificate, copy and paste it and save in a local file
named tnsr-restconf-client.crt
:
tnsr# pki certificate restconf-client get
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
Finally, export the user certificate private key, copy and paste it and save in
a local file named tnsr-restconf-client.key
. Remember to protect this file
so it is only readable by this user:
tnsr# pki private-key restconf-client get
-----BEGIN PRIVATE KEY-----
[...]
-----END PRIVATE KEY-----
This example uses curl
to access RESTCONF, so ensure it is installed and
available on the client computer.
Exporting a PKCS#12 archive¶
As an alternative to using the certificate and key separately, it’s also possible to export a PKCS#12 archive (PKCS#12 Archives) which contains the CA, client certificate, and client key. cURL and other utilities can utilize this archive for client certificate authentication.
When exporting the PKCS#12 archive, place the resulting file in a secure place on a client system, in a directory with appropriate permissions, readable only by the user. The archive bundle must be password-protected, but it’s still a best practice to ensure only the user has access to read the archive since it contains private key data.
Warning
Read through PKCS#12 Archives thoroughly and be aware of client platform requirements when choosing the algorithms used for encryption and hashing the archive. This recipe assumes the client is capable of using strong encryption.
To export an archive for the restconf-client
certificate and key signed by
the CA restconf-CA
, use the following command (all on one line):
tnsr# pki pkcs12 restconf-client generate export-password abc12345 ca-name restconf-CA
key-pbe-algorithm AES-256-CBC certificate-pbe-algorithm AES-256-CBC mac-algorithm sha256
The command will create a password-protected archive using the given password
(minimum 8 characters) and it will write the archive out to a file both in the
TNSR PKI store and in the current directory of the TNSR CLI client (e.g. the
tnsr
user home directory, /home/tnsr/
):
P12 restconf-client stored in /etc/pki/tls/tnsr/certs, copied to
./restconf-client-20231026152004.p12
Copy the .p12
file off TNSR using scp
or another program capable of
using SCP, such as FileZilla. Then copy the file to the client, changing its
name if necessary. For example, to make it easier to use with cURL, rename it to
restconf-client.p12