======openssl====== * Objet : découvrir le ssl * Niveau requis : {{tag>débutant avisé}} * Commentaires : notes perso ===== Qu'est-ce que ssl ?===== ===ssl : Secure Socket Layer=== C'est un protocole réseau à mis chemin entre un protocole réseau orienté connexion (TCP/IP) et un protocole de la couche applicative (HTTP). Il permet la sécurisation des communications entre un serveur et un client, au moyen : -d'une authentification mutuelle ; -d'une vérification de l'intégrité des communication par signature digitale -par un chiffrement par clés asymétriques afin que la communication soit privée Le port par défaut est 443 :\\ Dans apache il faut ajouter une directive ''Listen 443'' dans le fichier de configuration d'apache /etc/sites-availables/default-ssl. ===l'utilitaire OpenSSL=== Lors de l'installation du module ssl (installer par défaut avec l'installation d'apache2 sur debian), il s'est installé aussi l'utilitaire OpenSSL.\\ C'est l'utilitaire qui permet de mettre en place les certificats. * __Le dossier de configuration de OpenSSL est /etc/ssl/__ : Il contient deux dossiers et un fichier : -> **/etc/ssl/openssl.cnf** Fichier de configuration de opensl. On y met les directives. On peut y mettre son /home, l'autorité de certification ... -> le dossier **/etc/ssl/cert/** : il contient nos certificats * le dossier **/etc/ssl/private/** : il contient nos clés privées ===Créer un certificat === * On génère une clé privée : openssl genrsa 1024 > mon_fichier_pour_ma_clé * On crée un fichier de certification : openssl req -new -key nom_du_fichier Après on envoie ce fichier de certification au CA qui le signe, c'est-à-dire qui donne un fichier de certificat signé.\\ * les ranger dans apache2: > Le certificat envoyé au CA et celui qu'il nous a fourni signé dans ''/etc/ssl/certs/certificat.com'' > La clé privée dans ''/etc/ssl/private/sa_clé.key'' ((avec sur cette clé les droits posix 400)) =====Créer un certificat auto-signé ===== Par exemple : openssl req -x509 -nodes -days 365 -newkey rsa:1024\ -out /etc/ssl/certs/nom-du-site.com \ -keyout /etc/ssl/private/nom-du-site.com.key > -x509 -nodes : type de certificat > -days 365 : durée de vie du certificat (en jours) > - newkey rsa:1024 : clé rsa de 1024 bits > -out /chemin/fichier/du_certificat : crée le fichier du certificat > -keyout /etc/apache2/server.key : chemin du fichier de sa clé privée -> Cela crée un fichier /etc/ssl/certs/nom-du-site.com et un fichier /etc/ssl/private/nom-du-site.com.key dont on se sert pour configurer apache2. Pour un certificat auto-signé, il faut répondre à la question "Common Name" le nom du domaine à protéger * Donner les droits : chmod 400 /ssl/private/nom-du-site.com.key