06Certificates - amagerard/TemplateVM GitHub Wiki
HOME
RedHat/TemplateVM.
1- Installation | 2- Network | 3- Firewall | 4- Selinux |
---|---|---|---|
5- Logs | 6- Certificates | 7- Mail | 8- PassphraseSSH |
9- Sudo | 10- GnomeShell | 11- CloneVM | 12- Volume |
13- Troubleshoot |
6. Create a self-signed certificate.
6.1 About SSL Files.
Acronyme Français Anglais
CA Autorité de certification Certificat Authority
KEY Clé privée Private key
CSR Demande de signature Certificat Signing Request
CRT Certificat Certificat
Create a link for the private key folder.
ln -s /etc/pki/tls/private /etc/ssl/private
6.2 Configure a Certification Authority.
6.2.1 RSA type.
6.2.1.1 Create the CA.
Generate private key (RSA type key.
openssl genrsa -out /etc/ssl/private/CA.key 4096
Generate Certificate Signing Request (RSA type key).
openssl req -new -days 1460 -key /etc/ssl/private/CA.key -out /etc/ssl/certs/CA.csr
CountryName (2 letter code) [XX]:FR
State or Province Name (full name) []:France
Locality Name (eg, city) [Default City]:Versailles
Organization Name (eg, company) [Default Company Ltd]:ol26modk
Organizational Unit Name (eg, section) []:office
Common Name (eg, your name or your server's hostname) []:dns.ol26modk.com
Email Address []:[email protected]
Generate SSL certificate With self signed CA (RSA type key).
openssl x509 -req -days 1460 -in /etc/ssl/certs/CA.csr -out /etc/ssl/certs/CA.crt -signkey /etc/ssl/private/CA.key
You get 3 certificates.
/etc/ssl/private/CA.key
/etc/ssl/certs/CA.csr
/etc/ssl/certs/CA.crt
6.2.1.2 Configure for future CSR requests servers.
This configuration is necessary to sign your future requests for certificates of your machines
from the CA which acts as certification authority.
cp /etc/ssl/openssl.cnf /etc/pki/tls/openssl.cnf_backup
cp /etc/ssl/openssl.cnf /etc/pki/tls/openssl.cnf_rsa
mkdir /etc/pki/tls/newcerts
mkdir /etc/pki/tls/ca
mkdir /etc/pki/tls/crl
ln -s /etc/pki/tls/newcerts /etc/ssl
ln -s /etc/pki/tls/ca /etc/ssl
ln -s /etc/pki/tls/crl /etc/ssl
touch /etc/ssl/ca/index.txt
touch /etc/ssl/ca/serial
echo '01' > /etc/ssl/ca/serial
Edit the /etc/ssl/openssl.cnf_rsa file.
These are just the following lines.
vi /etc/pki/tls/openssl.cnf_rsa
# Add or modify.
[ CA_default ]
dir = /etc/ssl
database = $dir/ca/index.txt
certificate = $dir/certs/CA.crt
serial = $dir/ca/serial
crlnumber = $dir/ca/crlnumber
crl = $dir/ca/crl.pem
private_key = $dir/private/CA.key
default_md = sha256
[ req ]
default_md = sha256
6.2.2 ECC type.
6.2.2.1 Create the CA.
ECC stands for Elliptic Curve Cryptography.
Generate private key (ECC type key).
openssl ecparam -genkey -name prime256v1 -out /etc/ssl/private/CA-ecc.key
Generate Certificate Signing Request (ECC type key).
openssl req -new -sha256 -key /etc/ssl/private/CA-ecc.key -nodes -out /etc/ssl/certs/CA-ecc.csr
Generate SSL certificate With self signed CA (ECC type key).
openssl x509 -req -days 1460 -in /etc/ssl/certs/CA-ecc.csr -out /etc/ssl/certs/CA-ecc.crt -signkey /etc/ssl/private/CA-ecc.key
We obtain 3 certificates.
/etc/ssl/private/CA-ecc.key
/etc/ssl/certs/CA-ecc.csr
/etc/ssl/certs/CA-ecc.crt
6.2.2.2 Configure for future CSR requests servers.
This is the same procedure as 6.2.1.2.
If you haven't modified openssl.cnf.
cp /etc/pki/tls/openssl.cnf /etc/pki/tls/openssl.cnf_ecc
Or...
If you backed up openssl.cnf_backup.
cp /etc/pki/tls/openssl.cnf_backup /etc/pki/tls/openssl.cnf_ecc
vi /etc/pki/tls/openssl.cnf_ecc
# Add or modify.
[ CA_default ]
dir = /etc/ssl
database = $dir/ca/index.txt
certificate = $dir/certs/CA-ecc.crt
serial = $dir/ca/serial
crlnumber = $dir/ca/crlnumber
crl = $dir/ca/crl.pem
private_key = $dir/private/CA-ecc.key
default_md = sha256
[ req ]
default_md = sha256
6.3 Server Self-signed certificate.
I offer you as an example “srv1” for the name of your machine.
If you need to generate an autosigned type RSA certificate.
cp /etc/pki/tls/openssl.cnf_rsa /etc/pki/tls/openssl.cnf
If you need to generate an autosigned type ECC certificate.
cp /etc/pki/tls/openssl.cnf_ecc /etc/pki/tls/openssl.cnf
6.3.1 RSA type.
Prerequisites:
6.2.1 done.
Reminder 6.2.2.2.
cp /etc/pki/tls/openssl.cnf_rsa /etc/pki/tls/openssl.cnf
Generate private key.
openssl genrsa -out /etc/ssl/private/srv1.key 4096
Generate Certificate Signing Request.
openssl req -new -days 365 -key /etc/ssl/private/srv1.key -out /etc/ssl/certs/srv1.csr
Country Name (2 letter code) [XX]:FR
State or Province Name (full name) []:France
Locality Name (eg, city) [Default City]:Versailles
Organization Name (eg, company) [Default Company Ltd]:ol26modk
Organizational Unit Name (eg, section) []:office
Common Name (eg, your name or your server's hostname) []:srv1.ol26modk.com
Email Address []:[email protected]
Generate SSL certificate with self signed CA.
openssl ca -config /etc/ssl/openssl.cnf -out /etc/ssl/certs/srv1.crt -in /etc/ssl/certs/srv1.csr
You get 3 certificates.
/etc/ssl/private/srv1.key
/etc/ssl/certs/srv1.csr
/etc/ssl/certs/srv1.crt
6.3.2 ECC type.
Create an ECC type CA.
prerequisite:
6.2.2 done.
Reminder 6.2.2.2.
cp /etc/pki/tls/openssl.cnf_ecc /etc/pki/tls/openssl.cnf
Generate private key.
openssl ecparam -genkey -name prime256v1 -out /etc/ssl/private/srv1-ecc.key
Generate Certificate Signing Request.
openssl req -new -sha256 -key /etc/ssl/private/srv1-ecc.key -nodes -out /etc/ssl/certs/srv1-ecc.csr
Country Name (2 letter code) [XX]:FR
State or Province Name (full name) []:France
Locality Name (eg, city) [Default City]:Versailles
Organization Name (eg, company) [Default Company Ltd]:ol26modk
Organizational Unit Name (eg, section) []:office
Common Name (eg, your name or your server's hostname) []:srv2.ol26modk.com
Email Address []:[email protected]
Noticed.
The same dns name of srv1 is not possible because it has already been assigned.
I changed to srv2.ol26modk.com instead.
Generate SSL certificate With self signed CA.
openssl ca -config /etc/ssl/openssl.cnf -out /etc/ssl/certs/srv1-ecc.crt -in /etc/ssl/certs/srv1-ecc.csr
You get 3 certificates.
/etc/ssl/private/srv1-ecc.key
/etc/ssl/certs/srv1-ecc.csr
/etc/ssl/certs/srv1-ecc.crt
6.4 Changing Permissions.
chmod 400 /etc/ssl/private/*
chmod 600 /etc/ssl/certs/*
chmod 700 /etc/ssl