====== Créer un Certificat auto-signé ====== ===== Version longue Apache ===== (Note : Instructions pour Apache, adaptable à dovecot, extrait de [[http://netsafe.free.fr/index.php?Chap=A1bis|NetSafe J.F. Moreau]] Les instructions suivantes sont issues de la FAQ http://www.apache-ssl.org/#FAQ. ''openssl req -config openssl.cnf -new -out mon-serveur.csr'' Cela crée un CSR (Certificat Signing Request) et une clef privée. Lorsque l'on vous demande votre "nom de domaine", donnez le nom de domaine exact de votre serveur Web (par exemple www.mon-serveur.com, 195.125.204.24). Le certificat appartient à ce nom de serveur et les navigateurs se "plaignent" si le nom ne correspond pas. ''openssl rsa -in privkey.pem -out mon-serveur.key'' Cela enlève la phrase/motdepasse de la clef privée. Vous DEVEZ comprendre ce que cela signifie; mon-serveur.key doit être lisible seulement par le serveur apache et l'administrateur. Vous devez supprimer le fichier .rnd parce qu'il contient l'information d'entropie pour créer la clef et pourrait être employé pour des attaques cryptographiques contre votre clef privée. ''openssl x509 -in mon-serveur.csr -out mon-serveur.cert -req -signkey mon-serveur.key -days 365'' Cela crée un certificat signé que vous pouvez employer avant que vous n'en obteniez un "réel" d'une autorité de certification. (Le certificat réel est facultatif; si vous connaissez vos utilisateurs, vous pouvez leur dire d'installer le certificat dans leur(s) navigateur(s).) Notez que ce certificat expire après un an, vous pouvez modifier le délai (-days 365) si vous le désirez. Si vous avez des utilisateurs naviguant avec MS Internet Explorer 4.x et vouliez qu'ils soient capables d'installer le certificat dans leur navigateur (en le téléchargeant et en l'ouvrant), vous devez créer une version codée DER du certificat : openssl x509 -in mon-serveur.cert -out mon-serveur.der.crt -outform DER Créez un répertoire Apache/conf/ssl et déplacez-y les fichiers mon-serveur.key et mon-serveur.cert. Créez une liste d'adresses Apache/conf/ssl et déplacez-y server.key et server.crt. Pour Linux créez deux répertoires : ssl.key et ssl.crt. Déplacez server.crt dans ssl.crt et server.key dans ssl.key ===== Version ultra-simplifiée pour Ubuntu ===== make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /data/etc/ssl/certs/.pem ===== Convertir un .crt en .pem ===== Une autorité de certification externe peut fournir le certificat dans différents formats. openssl x509 -in input.crt -out output.pem -outform PEM Curieusement, un site indique deux étapes passant par le format DER : openssl x509 -in input.crt -out input.der -outform DER openssl x509 -in input.der -inform DER -out output.pem -outform PEM ====== cree_certificat.sh ====== #!/bin/sh # # Objet : Creation de certificats auto-signes pour serveur # # Auteur : Bernard Choppy # Date : 16 janvier 2010 set +x if test $# -lt 2 then echo "usage: $0 " >&2 echo " 'OU' peut etre, par exemple, 'Clients' ou 'Sports', etc." >&2 exit 1 fi W_ORIG=`pwd` cd `dirname $0` W_EXEC=`pwd` p_domaine=$1 p_ou=$2 # On cree la clef pour l'auto-signature openssl genrsa -out $W_ORIG/$p_domaine.key 1024 # On cree la demande de certificat openssl req -new -key $W_ORIG/$p_domaine.key -out $W_ORIG/$p_domaine.csr # Plus qu'à signer ! openssl x509 -req -days 365 -in $W_ORIG/$p_domaine.csr -signkey $W_ORIG/$p_domaine.key -out $W_ORIG/$p_domaine.crt # Version courte... # openssl req -new -x509 -config $W_EXEC/openssl.conf -keyout $W_ORIG/$p_domaine.pem -out $W_ORIG/$p_domaine.pem -days 365 -nodes