Ceci est une ancienne révision du document !
Un certificat autosigné peut servir :
Ce document utilise le logiciel OpenSSH soit sous Linux ou Windows.
La création d'un certificat auto-signé se réalise en trois étapes
Dans ce document est présenté la création d'un certificat autosigné pour un utilisateur
Avec OpenSSL, la clé privée générée contient également les informations de la clé publique. Il n'est donc pas nécessaire de générer la clé publique séparément.
Dans l'invite de commandes lancez la commande suivante :
$ openssl genrsa -aes256 -out user-private.pem 2048
Indiquez une pass-phrase pour votre nouvelle clé, pass-phrase qui sera demandé lors de la création du certificat.
Pour visualiser le contenu de cette clé privée :
openssl rsa -in user-private.pem -text
La commande suivant permet de connaître la liste des chiffrements disponibles :
$ openssl list -cipher-algorithms
$ openssl rsa -in user-private.pem -out user-public.pem -pubout Enter pass phrase for user-private.pem Writing RSA key
Pour visualiser le contenu de cette clé privée :
$ openssl rsa -in user-public.pem -pubin -text
Vous disposez maintenant :
Il est possible de supprimer la pass-phrase associée à la clé privée en générant une nouvelle clé privée à partir de cela déjà créer. Pour cela exécutez la commande suivante :
$ openssl rsa -in user-private.pem -out user-private_nopass.pem
Pour générer la requête de demande de signature, il faut utiliser le fichier contenant la clé privée.
Lors de la création de la requête vous avez à saisir vos informations d'identification et il est important d'indiquer un Common Name unique.
$ openssl req -new -key user-private.pem -out user.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Haute-Vienne Locality Name (eg, city) []:Limoges Organization Name (eg, company) [Internet Widgits Pty Ltd]:Lycée Syzanne Valadon Organizational Unit Name (eg, section) []:BTS SIO Common Name (e.g. server FQDN or YOUR name) []:user Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
$ openssl x509 -req -days 365 -in user.csr -signkey user-private.pem -out user.crt Signature ok subject=C = FR, ST = Haute-Vienne, L = Limoges, O = Lyc\C3\83\C2\A9e Suzanne Valadon, OU = BTS SIO, CN = user Getting Private key Enter pass phrase for user-private.pem: sio@vpsdebian:~/certificat$
Le certificat généré est le fichier .crt et la clé privée associée, le fichier .pem.
openssl genrsa 2048 -out ca-key.pem
Une clé maintenant :
===== Création certificat du CA en renseignant les informations d'identité. Il est important que le Common Name soit unique pour chaque certificat:
openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem
Deux clés maintenant :
Création de la clé privée du serveur en utilisant les deux fichiers créés auparavant et en indiquant un Common Name unique et en définissant un mot de passe comme chalenge password pour protéger la clé privée.
$ sudo openssl req -newkey rsa:2048 -nodes -keyout server-key.pem -out server-req.pem Generating a RSA private key writing new private key to 'server-key.pem' Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Haute-Vienne Locality Name (eg, city) []:Limoges Organization Name (eg, company) [Internet Widgits Pty Ltd]:BTS SIO CNED Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:MariaDB server Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
$ openssl rsa -in server-key.pem -out server-key.pem writing RSA key
$ openssl x509 -req -in server-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem Signature ok subject=C = FR, ST = Haute-Vienne, L = Limoges, O = Internet Widgits Pty Ltd, OU = BTS SIO, CN = server Getting CA Private Key
Vous disposez maintenant de deux fichiers supplémentaires qui permettront de sécuriser la communication le serveur :
$ openssl verify -CAfile ca-cert.pem server-cert.pem server-cert.pem: OK
Création de la clé privée de l'utilisateur en définissant un mot de passe comme chalenge password :
$ sudo openssl req -newkey rsa:2048 -nodes -keyout user-key.pem -out user-req.pem Generating a RSA private key writing new private key to 'user-key.pem' Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:Haute-Vienne Locality Name (eg, city) []:Limoges Organization Name (eg, company) [Internet Widgits Pty Ltd]:BTS SIO Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:user Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
$ sudo openssl rsa -in user-key.pem -out user-key.pem writing RSA key
$ sudo openssl x509 -req -in user-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out user-cert.pem Signature ok subject=C = FR, ST = Haute-Vienne, L = Limoges, O = Internet Widgits Pty Ltd, OU = BTS SIO, CN = User Getting CA Private Key
$ openssl verify -CAfile ca-cert.pem user-cert.pem user-cert.pem: OK
Les identités numériques sont enregistrées dans des conteneurs protégés et standardisés au format PKCS#12. Un fichier de ce type contient :
Ce fichier qui contient l'identité numérique d'un utilisateur a en général l'extension .p12 et est protégé par mot de passe.
# openssl pkcs12 -in moncertificat.p12 -out moncertificat.pem -nodes
# openssl pkcs12 -in moncertificat.p12 -out maclessh.pem -nodes -nocerts
# openssl x509 -in moncertificat.pem -pubkey -noout >> maclessh.pem
# ssh-keygen -i -m PKCS8 -f maclessh.pem
La ligne obtenu doit être copié sur le serveur, dans le fichier ~/.ssh/authorizedkeys
Test de la connexion Maintenant, vous pouvez tester la connexion au serveur avec de l'authentification forte.
Optionnel : ajout du fichier maclessh.pem dans la configuration du client Si vous le souhaitez, vous pouvez ajouter les lignes suivantes dans le fichier de configuration de votre client SSH. Celui se trouve généralement à l'endroit ~/.ssh/config Host NOMDUSERVEUR IdentityFile chemin/vers/maclessh.pem
Une fois que cela est fait, vous n'avez plus qu'à taper ceci pour accéder au serveur :
Pour extraire Ortu extraire Ressources : https://tbs-certificats.com/FAQ/fr/auth_forte_openssh.html
CSR (Certificate Signing Request) : demande externe de certificat à la CA en fournissant la clé publique et des informations d'identité et obtention après vérification d'un certificat signé
En résumé, il existe quatre manières différentes de présenter les certificats et leurs composants: