Générer un dossier d'autorité de certification comme celui du mail d'Olav du 12/08/2015. (Lui demander comment si on doit le faire à terme).
Cette autorité de certification permet de signer les certificats serveurs et clients et de les vérifier lors du opening handshake pour effectuer l'authentification ou le rejet de la connexion.
Bien penser au CAserial qui est un fichier contenant 2 chiffres (Apparemment 06) dans le cas du CA d'Olav. Il est présent dans le dossier en question.
Certificat serveur
Générer une clé privée pour le serveur. 1024 bits pour ne pas faire brûler le contrôleur d'Olav
Générer une signing request avec la clé privée générée.
Très important, pendant la génération de la signing request, il faut remplir l'url du serveur dans la "case" Common Name []
Signer cette requête avec l’autorité de certification pour générer le certificat du serveur (Faisable avec l'outil d'Olav).
Certificat client
Générer une clé privée pour le client. 1024 bits pour ne pas faire brûler le contrôleur d'Olav
Générer une signing request avec la clé privée générée.
Cette requête n'a pas besoin des informations Common name etc... elle peut être générée avec l'outil d'Olav et le dossier du CA.
Signer cette requête avec l’autorité de certification pour générer le certificat du client (Faisable avec l'outil d'Olav).
En pratique - génération des fichiers
Il semble que tout soit possible avec l'outil d'Olav, mais on peut aussi le faire en ligne de commande.
Authorité de certification
TODO, voir avec Olav comment il génère ses dossiers de CA. On se base sur son dossier K0 pour le moment...
Certificat serveur
Dans l'outil d'Olav, cliquer sur "New key pair" puis remplir les informations nécessaires en fonction des besoins. Bien penser au mode "Certificate signing request" :
OU sous forme de commande:
openssl req -nodes -days 36525 -subj /CN=85.14.137.12/O=Elipce/OU=Elipce Informatique/L=Valence/C=FR/ST=France -text -utf8 -sha256 -newkey rsa:1024 -keyout D:/Mes Documents/Projets/Parking/tech/ssl/SERVER/server.key -out D:/Mes Documents/Projets/Parking/tech/ssl/SERVER/server.csr
Toujours dans l'outil, cliquer sur "Sign". Aller chercher le fichier .csr généré ci-dessus puis le dossier du CA (Pour le moment on utilise le K0 fourni par Olav):
OU par ligne de commande:
openssl ca -batch -utf8 -md sha256 -days 36525 -in D:/Mes Documents/Projets/Parking/tech/ssl/SERVER/server.csr -out D:/Mes Documents/Projets/Parking/tech/ssl/SERVER/server.crt
En utilisant le fichier de config du dossier du CA (ici ca/K0/openssl.cnf) et le CAserial fourni dans le dossier aussi.
Normalement le dossier de destination doit contenir 3 fichiers:
server.crt
server.csr
server.key
Certificat Client
Même procédure que pour le certificat serveur mais avec des informations relatives au client dans la fenêtre de génération de la paire de clé:
Puis le signer, toujours avec le dossier du CA identique au serveur:
Normalement le dossier de destination doit contenir 3 fichiers:
client.crt
client.csr
client.key
Avec ces fichiers, on va maintenant générer un fichier au format p12 (identique à pfx). Ce format permet d'installer non seulement le certificat mais aussi la clé privée.
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
Mise en fonctionnement
Installations nécessaires
Côté serveur, il faut renseigner le ca.crt, le server.crt et le server.key dans le serveur http Node.
Côté client de supervision
WINDOWS
Il faut installer le ca.crt dans le dossier "Autorités de certification racines de confiance"
Il faut installer le client.p12 dans le dossier personnel.
Il faut vérifier via le navigateur que le certificat soit bien pris en compte. Via chrome il faut aller dans la partie "Gérer les certificats..." et vérifier qu'il apparaisse bien dans l'onglet personnel. Sinon, essayer de l'importer directement depuis cette fenêtre.
De même il faut vérifier que le CA apparaissent dans l'onglet Autorités de certification racines de confiance
LINUX
Dans chrome: Pamètres / HTTPS / SSL / Gérer les certificats
Importer le certificat client dans l'onglet "Vos certificats"
Importer l'autorité de certification dans l'onglet "Autorités"
Gérer les certificats sous windows
Il peut être utile d'afficher et de pouvoir gérer les certificats installés sur le poste client. Pour cela, on peut passer par le navigateur (voir ci-dessus pour chrome) ou par un utilitaire Windows:
Mise en place globale Authentification SSL
Authorité de certification
Certificat serveur
Certificat client
En pratique - génération des fichiers
Il semble que tout soit possible avec l'outil d'Olav, mais on peut aussi le faire en ligne de commande.
Authorité de certification
TODO, voir avec Olav comment il génère ses dossiers de CA. On se base sur son dossier K0 pour le moment...
Certificat serveur
OU sous forme de commande:
openssl req -nodes -days 36525 -subj /CN=85.14.137.12/O=Elipce/OU=Elipce Informatique/L=Valence/C=FR/ST=France -text -utf8 -sha256 -newkey rsa:1024 -keyout D:/Mes Documents/Projets/Parking/tech/ssl/SERVER/server.key -out D:/Mes Documents/Projets/Parking/tech/ssl/SERVER/server.csr
OU par ligne de commande:
openssl ca -batch -utf8 -md sha256 -days 36525 -in D:/Mes Documents/Projets/Parking/tech/ssl/SERVER/server.csr -out D:/Mes Documents/Projets/Parking/tech/ssl/SERVER/server.crt
En utilisant le fichier de config du dossier du CA (ici ca/K0/openssl.cnf) et le CAserial fourni dans le dossier aussi.Normalement le dossier de destination doit contenir 3 fichiers:
Certificat Client
Même procédure que pour le certificat serveur mais avec des informations relatives au client dans la fenêtre de génération de la paire de clé:
Puis le signer, toujours avec le dossier du CA identique au serveur:
Normalement le dossier de destination doit contenir 3 fichiers:
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
Mise en fonctionnement
Installations nécessaires
Gérer les certificats sous windows
Il peut être utile d'afficher et de pouvoir gérer les certificats installés sur le poste client. Pour cela, on peut passer par le navigateur (voir ci-dessus pour chrome) ou par un utilitaire Windows: