Guide pratique : Openssl                                          Guide pratique : Comment sécuriser                      ...
Guide pratique : Openssl    1. Le  certificat  doit  contenir  le  nom  du  site  quil  sécurise  (ex. www.mon_site.fr).  ...
Guide pratique : Openssl. Après la fin de l’installation du système, on passe à la vérification des prérequis d’abord le s...
Guide pratique : Openssl                                                              Si elle montre que la commande nexis...
Guide pratique : Openssldefault_days                   =   365default_md                     =   md5preserve              ...
Guide pr       ratique : Open                    nssl                                                                     ...
Guide pratique : OpensslDes clients peuvent vous soumettre des CSR que vous signerez (sils vous payent ! ☺)   Etape3 : Cré...
Guide pratique : Openssl                                                                                              Les ...
Guide pratique : Openssl                                                                                                  ...
Guide pratique : Opensslsuivantes y soit présent (commentez avec le caractère dièse "#" toute référence à d’autres certifi...
Guide pratique : Openssl                                                                  Etape 6 : Installation du certif...
Guide pr       ratique : Open                    nsslDéroul     lement de échange SSL             es      ess             ...
Prochain SlideShare
Chargement dans…5
×

Guide pratique openssl sous debian

4 205 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
4 205
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
110
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Guide pratique openssl sous debian

  1. 1. Guide pratique : Openssl Guide pratique : Comment sécuriser  l’accès au site via         A travers ce guide, vous allez apprendre à monter un serveur web sécurisé  sous Debian, Nous   allons  commencer  par  l’installation,  puis  nous  créerons  une  Autorité  de  Certification  (AC)  pour que le serveur puisse gérer des certificats.   Introduction Pour  sécuriser  une connexion  à  un serveur  web  (https),  nous  avons  besoin  dun  certificat. Dans une première approche (adopter dans ce guide) il est possible dutiliser des certificats dits "auto‐signés". Générés très facilement, ils sont très pratique pour développer et tester un  site  sécurisé  mais  beaucoup  moins  sagissant  dune  utilisation  régulière  et  publique, principalement  à  cause  des  avertissements  de  sécurité  quils  génèrent  sur  lapplication cliente.  Lautre  option  est  alors  dacheter  un  certificat  auprès  dun  tiers  de  confiance(CA). Certificat  qui  vous  permettra  à  votre  tour  den  générer  dautres  qui  cette  fois  seront acceptés sans erreur. Quelques bases Avant d’entrer dans le vif du sujet, précisons quelques bases, dès que lon souhaite mettre en œuvre une connexion cryptée par SSL pour Apache (HTTPS), il est nécessaire davoir un certificat. Ce certificat installé sur le serveur contient une paire de clef qui va permettre aux deux  parties  de  mettre  en  place  un  échange  chiffré.  Une  des  informations  échangée  à  ce stade  est  une  autre  clef  qui  va  servir  quant  à  elle  à  chiffrer,  par  un  algorithme  dit "symétrique", le reste de la communication. La raison de ce changement de clef tient à ce que le chiffrement asymétrique est plus demandeur en ressources, mais aussi plus sécurisé, que sa contrepartie symétrique. Ce protocole permet en quelque sorte darriver au meilleur des deux mondes. Un certificat peut très facilement être généré en utilisant les outils du paquet openssl. Mais pour quun certificat serveur soit déclaré valide sur le client il doit répondre à trois règles, et tout  manquement  à  lune  de  ces  règles  entraîne  laffichage  dun  message  davertissement sur le navigateur client. Yahya.charai@gmail.com | ESR Master 1  1 
  2. 2. Guide pratique : Openssl 1. Le  certificat  doit  contenir  le  nom  du  site  quil  sécurise  (ex. www.mon_site.fr).  Si  ce  nest pas le cas, le navigateur protestera que le certificat ne provient pas de la bonne  adresse.  2. Le  certificat  doit  contenir  une  signature  fiable.  Si  ce  nest  pas  le  cas,  certain  navigateurs se contenterons de pleurer un peu, dautres, comme FireFox, bloquera  laccès avec une signature invalide  3. Le certificat doit être signé par un AC (Autorité de Certification) ou par un certificat  qui lui‐même est signée par un AC.  SSL Le protocole SSL (Secure Socket Layer) a été créé par Netscape pour sécuriser les transactions entre les  serveurs  web  et  les  outils  de  navigation.  Il  a  recours  à   un  tiers,  lautorité  de  certification (CA/CertificateAuthority) qui identifie nimporte laquelle des extrémités ou les deux. Openssl Pour créer nos certificats, nous utilisons l’outil de cryptographie Openssl  qui sert à :  ‐ Créer une Authorité de Certification pour un serveur  ‐ Chiffrer des données entre une application serveur et une application cliente (http,  vpn, etc.)  ‐ Chiffrer et déchiffrer des fichiers sur un disque  ‐ Identifier des machines clientes auprès de serveurs  ‐ Plus encore... Plateforme OS :Debian‐6.0.3 Serveur web :Apache +module sslactivé Applications de cryptographie :Openssl‐0.9.8 Pour  mener  bien  ce  guide  vous  devez  au  préalable  préparer  votre  machine  serveur  en installant  Debian,  Apache,Openssl  et  le  module  modssl  d’apache,  vous  voyez  que  c’est simple il faut juste cocher lors d’installation de Debian   « Serveur web »comme ça vous allez avoir un serveur web qui tourne bien, n’oubliez pas qu’il est possible d’installer ces outils un par un et les configurer par la suite ,mais pourquoi réinventer la roue si Debian nos propose d’installer un serveur dans les options d’installation avec le module ssl il faut juste l’activé Yahya.charai@gmail.com | ESR Master 1  2 
  3. 3. Guide pratique : Openssl. Après la fin de l’installation du système, on passe à la vérification des prérequis d’abord le serveur web, pour vérifier le serveur web tapez l’url ou @ip  de votre serveur sur le navigateur de votre choix et examinez le résultat qui doit  être identique à cela :   Apache  doit  également  être  installé  avec  le  module  de  SSL. Il  reste  que  l’activation  de    ce dernier,  plus  tard  on  va  voir  comment,  précisément  dans  l’étape  de  configuration d’apapche2.Vous pouvez vérifier le paquet Openssl avec la requête apt‐cache search <paquet>:   Ou  directement avec la commande openssl: Yahya.charai@gmail.com | ESR Master 1  3 
  4. 4. Guide pratique : Openssl  Si elle montre que la commande nexiste pas, alors vous devez le télécharger et l’installer Etape1 : Création de l’infrastructure CA Créez les dossiers destinés à contenir le certificat:   /etc/ssl/ : répertoire de configuration général de openssl créé lors de l’installation  /etc/ssl/ca/ : répertoire qui contient les fichiers de lAC /etc/ssl/ca/newcerts/ : répertoire qui contient les certificats signés par lAC L’étape suivante consiste à créer la base de données pour les certificats prochainement crée et signé,en effet la base de données est composées de 2 fichiers :  Le fichier index.txt liste tous les certificats qui ont été signé. Le  fichier serial contient  le  prochain  numéro  de  série  disponible,  étant  donné  que  nous venons de mettre en place l’autorité le prochain numéro de série sera le 1,ce numéro sera incrémenté à chaque nouveau certificat Etape2 : Génération du certificat racine CA Il faut d’abord créer le fichier de configuration du CA (openssl.cnf)pour quil ressemble à ça : ## OpenSSL configuration file.## Establish working directory.dir = .[ ca ]default_ca = CA_default[ CA_default ]serial = $dir/serialdatabase = $dir/index.txtnew_certs_dir = $dir/newcertscertificate = $dir/cacert.pemprivate_key = $dir/private/cakey.pemYahya.charai@gmail.com | ESR Master 1  4 
  5. 5. Guide pratique : Openssldefault_days = 365default_md = md5preserve = noemail_in_dn = nonameopt = default_cacertopt = default_capolicy = policy_match[ policy_match ]countryName = matchstateOrProvinceName = matchorganizationName = matchorganizationalUnitName = optionalcommonName = suppliedemailAddress = optional[ req ]default_bits = 1024 # Size of keysdefault_keyfile = key.pem # name of generated keysdefault_md = md5 # message digest algorithmstring_mask = nombstr # permitted charactersdistinguished_name = req_distinguished_namereq_extensions = v3_req[ req_distinguished_name ]# Variable name Prompt string#---------------------- ----------------------------------0.organizationName = Organization Name (company)organizationalUnitName = Organizational Unit Name (department, division)emailAddress = Email AddressemailAddress_max = 40localityName = Locality Name (city, district)stateOrProvinceName = State or Province Name (full name)countryName = Country Name (2 letter code)countryName_min = 2countryName_max = 2commonName = Common Name (hostname, IP, or your name)commonName_max = 64# Default values for the above, for consistency and less typing.# Variable name Value#------------------------------ ------------------------------0.organizationName_default = EcoleESRmilocalityName_default = RabatstateOrProvinceName_default = RabatcountryName_default = MR[ v3_ca ]basicConstraints = CA:TRUEsubjectKeyIdentifier = hashauthorityKeyIdentifier = keyid:always,issuer:always[ v3_req ]basicConstraints = CA:FALSEsubjectKeyIdentifier = hash Un ls de notre dossier à ce stade donne l’aperçu suivant : Yahya.charai@gmail.com | ESR Master 1  5 
  6. 6. Guide pr ratique : Open nssl  Maintenant  que  le    fichier  d configur de  ration  est  créé  il  va  maintenant falloir  gén c t  nérer  le  at racine ducertifica u CA, à noteer que  la plupart des i information ns qui iront  sur le certificat est prise à partir du ce e fichier. On génè ère le certif ficat CA  ave ec la commande suivan nte :   Il en rés sulte deux f fichiers: Un certtificat de CA A racine ca acert.pem ertificat raci m, est le ce ine publiqu ue qui sera  importé  dans les browsers  des clients s qui auront t besoin dee faire des ééchanges sé écurisés ave ec notre serveurr. Une  cl privée  (private lé  e/cakey.p pem)  (Lex xtension  "p pem"  est  Privacy  En nhanced Messagge)cette  clé é  est deman ndée lors de e  la signatu ure d’un nouveau certificat.    En  important le  certificat  cacert t  t.pem sur  les  browwsers,  nous  serions  do plus  onc valables s en tant quue CA pourr le navigate eur et chaq que fois que e le client se e connecte à notre serveur votre  na r,  avigateur  n sera  plu montran la  boîte de  dialog ne  us  nt  e  gue  qui  demande dacceppter la connexion sécur risée. Voilà, vous avez maintenant u une autorité é de certific cation.  Yahya.ch harai@gmail.c com | ESR Ma aster 1  6 
  7. 7. Guide pratique : OpensslDes clients peuvent vous soumettre des CSR que vous signerez (sils vous payent ! ☺)   Etape3 : Création dune demande de signature de certificat (CSR)  (CertificateSigningRequest) À  ce  stade,  nous  avons  un  certificat  racine  valide,  claire,  pour  créer  des  certificats  non seulement pour https, mais SPOP, ou SIMAP ou créer dauthentification pour les connexions VPN. Deux  étapes à effectuer pour créer CSR:  • Créez une clé privée et la demande de certificat.  • Signez la demande et  générer un certificat signé. On génère la demande de certificat avec la commande suivante :   Une  nouvelle  demande  de  certificat    implique  de  renseigner  certaines  informations demandée,  remplissez‐les  en  adaptant  ou  laissez  les  paramètres  par  défaut  du  fichier  de configuration sauf le champ "Common Name" qui doit être identique au nom dhôte/@ip de votre serveur   • les deux lettres qui identifient le pays   • le nom de du pays.  • le nom de la ville.  • le nom de l’entreprise ou autre si particulier.  • le nom du site.  • l’adresse mail de l’administrateur.  Yahya.charai@gmail.com | ESR Master 1  7 
  8. 8. Guide pratique : Openssl  Les fichiers suivants donc été générés :  key.pem >> la clé privée  req.pem >> la demande de signature de certificat (CSR) Nous pouvons voir le contenu de notre formulaire de demande dans un format plus lisible : Etape 4 : La signature du certificat serveur par le CA (Certificate Autority)  La commande qui signe la demande de certificat est la suivante : Yahya.charai@gmail.com | ESR Master 1  8 
  9. 9. Guide pratique : Openssl  La procédure de signature met à jour la base de données du CA (le fichier index.txt, serial) elle crée aussi une copie de certificat dans newcerts/<serial>.pem Le  fichier  index.txt  contient  les  références  des  certificats  créés  par  OpenSSL.  Les enregistrements sont annotés avec un R pour indiquer que le certificat est révoqué, V quil est valide et E quil a expiré.   Après vous pouvez inspecter votre certificat:   Etape 5 : Configuration spécifique  dApache2 Dans un premier temps il est nécessaire que le serveur apache écoute sur le port 443. Pour cela il suffit d’éditer le ficher /etc/apache2/ports.conf et vérifier que la ligne Listen  443 y soit présente. La meilleure manière de l’intégrer est de l’écrire de la sorte :   Ensuite  il  faut  configurer  le  site  que  l’on  veut  mettre  en  place  dans  « /etc/apache2/site-available/»  Par  défaut  un  site  est  configuré  dans  le  fichier  « default-ssl ».  On  peut l’adapter en fonction de la configuration souhaitée, mais au moins  il faut que les directives Yahya.charai@gmail.com | ESR Master 1  9 
  10. 10. Guide pratique : Opensslsuivantes y soit présent (commentez avec le caractère dièse "#" toute référence à d’autres certificats : Après activez le module ssl d’apache2 si n’est pas encore activé ; Et redémarrez le serveur apache2 pour activer  la nouvelle configuration ;   Voilà le serveur écoute sur le porte 443, il est nécessaire maintenant dactiver le site :   Et bien sûr que ça nécessite un restart encore une fois de notre  serveur En  essayant  maintenant  à  accéder  à  notre  site  qu’on  vient  de  sécuriser  avec  https://  on obtient l’alerte suivante qu’indique que  cette certificat est signée avec un CA qui ne figure pas  parmi  les  AC  racine  de  confiance,  l’étape  suivante  explique  comment  importer  le  CA pour ne pas avoir cet alerte prochainement. Yahya.charai@gmail.com | ESR Master 1  10 
  11. 11. Guide pratique : Openssl  Etape 6 : Installation du certificat dautorité de certification Il faut maintenant installer le certificat de lautorité de certification dans chaque navigateur client. Cest ce dernier qui va valider le certificat reçu par le client lors de la requête https://, Pour cela "Arrangez‐vous" pour avoir le certificat (fichier cacert.pem)  disponible à partir du client par la suite importer  ce fichier sur le navigateur. Une fois le fichier copié, suivre la procédure suivante : Pour Internet Explorer :  ‐ Allez dans  le menu Outils / Options/Contenu/Certificats/importer Pour Firefox :  ‐ Outils/Options/Avancé/Afficher les certificats /Autorités/Importer        Yahya.charai@gmail.com | ESR Master 1  11 
  12. 12. Guide pr ratique : Open nsslDéroul lement de échange SSL es ess Un navigatteur demande une page web w sécurisée ( général h (en https://)      Le serveur web émet sa clef publiqu a ue accompagn de son c née certificat  Le navigate vérifie qu le certifica a été eur ue at  émis par un autorité de certification racine, ne quil est tou ujours valide et quil se ra apporte bien au site en cours. e  Le navigate emploie l clef publique du eur la serveur pou chiffrer un clef de chiffrement ur ne symétrique aléatoire et lenvoie au serveur s web avec lURL demandée et divers ses données HT TTP chiffrée es. Le serveur web déchiffr la clef de chiffrement re c symétrique grâce à sa clef privée et utilise la e frement symétrique pour récupérer clef de chiff r lURL et les données HT s TTP. Le serveur renvoie le do ocument htm et les ml données HTTTP chiffrée avec la cle es ef symétrique Le navigate déchiffre lensemble avec la clef eur a symétrique et affiche les information s ns.Yahya.ch harai@gmail.c com | ESR Ma aster 1  12 

×