Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Le point sur SSL #67

Open
YannPl opened this issue Aug 13, 2015 · 0 comments
Open

Le point sur SSL #67

YannPl opened this issue Aug 13, 2015 · 0 comments
Labels

Comments

@YannPl
Copy link
Contributor

YannPl commented Aug 13, 2015

Mise en place globale Authentification SSL

Authorité de certification

  • 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" :

image
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):

image
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é:

image

Puis le signer, toujours avec le dossier du CA identique au serveur:
image

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:

  • taper certmgr.msc dans le menu démarrer.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant