Archives par étiquette : ssl

Commandes utiles

openssl

Voici quelques commandes utiles. Sauf indication contraire, c’est du Linux 😉 mais ça marche quasiment de la même façon sous Windows.

openSSL est un outil open source très répandu qui offre un très grand nombre de fonctions utiles pour la mise en oeuvre de SSL. Voici quelques exemples d’utilisation.

Pour récupérer le certificat présenté par un site :

openssl s_client -connect nom_du_site:443 -showcerts

Pour afficher en clair le contenu d’un certificat X.509 :

openssl x509 -in nom_fichier_certificat -text

Debugging de connexion SSL

openssl s_client -state -nbio -debug -connect ...

Pour afficher la clé publique d’un certificat :

openssl x509 -pubkey -noout -in nom_fichier_certificat

Pour afficher la clé publique en format utile pour une connexion SSH avec clé :

 ssh-keygen -y -f nom_fichier_cerificat

Pour la clé privée :

openssl pkcs12 -in fichier.pfx -nocerts -out fichier.key -nodes
openssl rsa -in fichier.key -out clepriv.key

A passer ensuite dans la moulinette PuTTY KeyGen pour transformer tout ça en format utilisable par PuTTY…

Convert PEM files

PEM to DER

openssl x509 -outform der -in certificate.pem -out certificate.der 

PEM to P7B

openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer 

PEM to PFX

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt 

Convert P7B files

P7B to PEM

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer 

P7B to PFX

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer 

Convert PFX files

PFX to PEM (extraction du certificat)

openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

PFX to PEM (extraction de la clé privée)

openssl pkcs12 -in certificate.pfx -nocerts -out cle.pem -nodes

Convert DER files

DER to PEM

openssl x509 -inform der -in certificate.cer -out certificate.pem

Sources

git

Pour utiliser git avec token d’authentification, il faut indiquer ce token dans l’URL des push.

git remote set-url origin "https://USER:TOKEN@gitlab.com/user/projet.git"

BitLocker

Récupération des informations sur un volume donné :

manage-bde –protectors –get [volume]

Création d’un fichier package de clé, sur un id récupéré par la commande ci-dessus :

manage-bde -KeyPackage C: -id "{id}" -path "f:\Folder" 

Réseau

Windows

ipconfig /displaydns 
tracert 
netsh

Linux

Pour arrêter et redémarrer une interface (afin de prendre en compte les changements de paramétrage).

ifconfig eth0 down
ifconfig eth0 up 

Autres commandes :

route -n

Windows

Mesure de performances Win10

Voir aussi

Bug SSL (Apple)

Je classe la vulnérabilité CVE-2014-1266 parmi les énigmes de sécurité informatique, comme l’affaire TrueCrypt, car les circonstances entourant ce bug SSL sont mystérieuses, et n’ont pas l’air d’avoir été éclaircies (en 2018).

Comme son nom l’indique, cette faille a été découverte en 2014.

Nginx

Nginx est un serveur web relativement léger qui est désormais assez répandu.

Passer en https

Un excellent article sur le sujet (en anglais) est disponible chez DigitalOcean. Un résumé se trouve ci-dessous.

Installer Certbot

Certbot est un utilitaire permettant d’avoir rapidement un certificat SSL reconnu par la plupart des navigateurs. Un petit tour sur le site officiel https://certbot.eff.org/ et c’est joué.

Sans détailler toutes les possibilités, un simple certbot certonly suffit la plupart du temps à créer les certificats. Pour cela, il faut qu’un serveur web correspondant au nom de domaine voulu soit installé et accessible pour l’utilitaire. Les éléments du certificat seront créés et il sera alors possible de les utiliser pour tous les services associés à ce domaine, même sur d’autres ports que les classiques 80 et 443 du web.

Basculer nginx en https

Sur certaines distributions, cela se fait presque tout seul. Si ça n’est pas le cas, voici les étapes pour les distributions debian-like.

Il faut commencer par modifier le fichier .conf correspondant votre site (/etc/nginx/sites-available/default pour le site par défaut). Cela doit ressembler à ceci :

# Default server configuration 
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name www.;
        return 301 https://$request_uri;
}
server {
        # SSL configuration
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;
        server_name www.;
        ssl_certificate         /etc/letsencrypt/live//fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live//privkey.pem;
...

Pensez bien à séparer les deux serveurs, sous peine d’avoir des redirections infinies sur le site en https !

Renouvellement

Comme les certificats Let’s Encrypt n’ont qu’une durée de vie assez courte (3 mois), il faut les renouveler régulièrement. C’est extrêmement difficile et complexe, car il faut lancer la commande :

$ certbot renew

Cela ne renouvelle vos certificats que s’il y en a vraiment besoin. Donc vous pouvez même lancer la commande tous les jours, vos certificats ne seront renouvelés qu’à l’approche de l’échéance de ceux-ci. Un petit crontab et hop, le tour est joué.

Après, il reste à recopier vos éléments de certificats là où vous les utilisez, si par exemple vous vous en servez pour des services hors http/https.