Le Service Web Inscription de certificats (CES) permet à des machines et utilisateurs d’obtenir ou renouveler des certificats via HTTPS, même s’ils ne sont pas connectés au domaine (ex : ordinateurs en DMZ, machines distantes, BYOD…).
Le configurer comme Identité du pool d’applications CES dans IIS.
iisreset
Principes de fonctionnement quand CES est configuré en renouvellement seulement :
La CA délivre un nouveau certificat basé sur l’ancien.
Aucune demande de nouveau certificat n'est acceptée.
Cela permet :
Pour les services comme Apache, Nginx, HAProxy ou Postfix, les clé privées sont enregistrées dasn le dossier /etc/ssl/private/ :
openssl genrsa -out /etc/ssl/private/server.key 2048 chmod 600 /etc/ssl/private/server.key chown root:root /etc/ssl/private/server.key
HAProxy préfère un fichier unique PEM contenant (dans l'ordre) :
Ce fichier PEM unique est placé dasn le dossier /etc/haproxy/certs/
Contenu du fichier PEM :
-----BEGIN PRIVATE KEY----- (key) -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- (cert) -----END CERTIFICATE----- (intermediate chain)
chmod 600 /etc/haproxy/certs/nomsite.pem chown root:root /etc/haproxy/certs/nomsite.pem
Dossiers de la clé et du certificat
Configuration du fichier pioru le site Web /etc/apache2/sites-enabled/site.conf :
SSLCertificateFile /etc/ssl/certs/nomsite.crt SSLCertificateKeyFile /etc/ssl/private/nomsite.key
openssl pkcs12 -export \ -inkey server.key \ -in cert.pem \ -certfile chain.pem \ -out /etc/tomcat9/ssl/tomcat.p12
chmod 600 /etc/tomcat9/ssl/tomcat.p12 chown tomcat:tomcat /etc/tomcat9/ssl/tomcat.p12
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443"*
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="/etc/tomcat9/ssl/tomcat.p12"
keystoreType="PKCS12"
keystorePass="LE_MOT_DE_PASSE_DU_P12"
clientAuth="false"
sslProtocol="TLS" />
code> systemctl restart tomcat9 </code>
Crée un fichier san.cnf pour ajouter un SAN (recommandé) pur un serveur exemple appelé guac.lab.local avec ce contenu :
[ req ] default_bits = 2048 prompt = no default_md = sha256 req_extensions = req_ext distinguished_name = dn [ dn ] CN = guac.lab.local [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.1 = guac.lab.local DNS.2 = guac
openssl req -new -key guac.lab.local.key \ -out guac.lab.local.csr \ -config san.cnf
* vérifiez le csr
openssl req -text -noout -verify -in guac.lab.local.csr
Certificate request self-signature verify OK
Certificate Request:
Data:
Version: 1 (0x0)
Subject: CN=guac.lab.local
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:b8:7f:55:b1:ca:09:23:12:fc:1b:d4:97:7a:76:
8e:50:37:24:ce:4a:e7:c8:3e:75:82:7b:78:9b:8b:
94:bb:6d:7e:31:6f:9c:25:77:4d:ab:55:c7:06:31:
09:dc:43:80:32:7f:5d:89:22:15:4c:ea:ea:ba:81:
79:6b:f0:16:53:3c:b1:38:db:04:33:bb:d2:04:24:
db:8f:d9:a6:a7:45:04:ea:ac:3d:eb:19:91:bb:ed:
d0:7b:8c:ba:6b:9b:a1:17:a2:cc:15:1b:c4:dc:fd:
b9:e7:dd:5c:47:d0:d9:53:93:70:4c:c8:1a:41:32:
84:e2:c5:63:3d:d2:93:96:81:0c:bf:d9:25:59:bd:
de:eb:99:56:e4:2d:06:ce:cb:33:92:98:a4:41:18:
5a:de:5d:8d:2a:b4:5b:c7:d2:d3:f1:e9:30:4c:ba:
93:fc:44:d5:f6:cf:7d:49:69:b7:b5:66:7d:99:4f:
1c:0a:cb:43:30:71:70:96:53:75:bc:18:43:ff:c8:
e6:94:00:2b:ad:d9:e5:a6:5b:cc:5a:c6:6b:1e:15:
69:35:a4:3c:30:80:e8:a7:c0:de:23:79:96:d5:ab:
0c:2d:48:ad:28:63:66:6c:dc:79:5f:e8:3d:b4:4e:
ab:6d:58:04:66:44:11:36:77:73:0a:50:7b:ed:59:
ad:01
Exponent: 65537 (0x10001)
Attributes:
Requested Extensions:
X509v3 Subject Alternative Name:
DNS:guac.lab.local, DNS:guac
Signature Algorithm: sha256WithRSAEncryption
Signature Value:
58:57:5e:29:66:bf:38:7d:b0:0f:c2:d5:cd:37:b9:51:ab:10:
7f:4c:ac:f1:15:1f:82:8b:d1:ca:e3:8f:da:03:a2:24:1c:ac:
78:f6:81:4c:8c:ac:0c:37:02:fe:ec:1f:f2:d0:51:d6:a3:f5:
da:01:d4:aa:c3:27:d9:d3:f1:5b:99:00:14:b3:e0:32:a4:a1:
2f:4c:2d:52:84:bc:da:fc:fd:c7:7c:ae:da:9c:b2:e3:78:24:
74:62:3d:50:af:7a:de:b5:92:91:c9:fe:f1:90:5c:8c:11:a1:
a7:ba:5b:ed:4f:59:05:7a:06:11:69:ca:d8:e4:1f:4e:ee:4b:
63:81:47:58:10:e1:0a:cf:cb:b9:0c:76:f5:2c:d1:05:a0:b2:
be:a5:da:dc:bc:9c:5e:9a:06:5b:0c:d8:13:a9:4a:fd:c3:c1:
c0:ff:8b:0e:33:2b:b8:0d:c8:73:f4:d3:3b:22:e6:4e:80:e3:
c5:f3:76:5b:a4:89:1c:f1:9b:6f:a9:88:ec:f7:f6:4e:58:2d:
42:6d:c6:06:b9:58:fa:98:db:17:9a:5c:ce:64:3a:fc:e5:be:
4f:08:58:ac:fe:3a:26:f1:ef:1d:09:9a:46:8c:2f:31:1b:68:
e5:96:08:ea:63:35:63:8c:6f:fb:4a:5d:28:2a:00:a5:c6:b8:
f8:b5:c4:ec
certutil -ca.cert rootCA.cer
openssl x509 -in guac.lab.local.cer -out guac.lab.local.crt openssl x509 -in rootCA.cer -out rootCA.crt
HAProxy doit avoir un seul fichier .pem contenant :
cat guac.lab.local.key guac.lab.local.crt rootCA.crt > /etc/haproxy/certs/guac.lab.local.pem
chmod 600 /etc/haproxy/certs/guac.lab.local.pem
haproxy -c -f /etc/haproxy/haproxy.cfg systemctl reload haproxy