Blog de Jesus Forain Blog de Jesus Forain
Blog personnel de Jesus Forain où les principaux sujets sont l'informatique, la technologie, le spatial mais aussi divers sujets.
Site hébergé sur un mini PC KVM avec une connexion ADSL infos ici
Rechercher & filtrer
Filtrer par année / mois
Derniers commentaires
Rencontre Aérotrain du 6 juillet 2024
avatar de Jesus Forain
Jesus Forain
dimanche 21 juillet 2024 23:10

J'ai rien supprimé, toutes les photos en rapport avec l'Aérotrain sont ici dans la galerie photo. Il me reste aussi la vidéo à faire, et je mettrais à jour cet article.

Rencontre Aérotrain du 6 juillet 2024
JCB (non inscrit)
dimanche 21 juillet 2024 20:03

Les photos de la rencontre ont disparues ? Il y en avait beaucoup plus à un moment. Comment les voir ?

Free: le reverse DNS est de nouveau opérationnel
mecamic (non inscrit)
vendredi 19 juillet 2024 12:32

Merci beaucoup pour ce retour. Je vais donc supprimer l'adresse IPV6 pour le serveur de mail.

Free: le reverse DNS est de nouveau opérationnel
avatar de Jesus Forain
Jesus Forain
vendredi 19 juillet 2024 11:44

Bonjour, Le reverse DNS n'est pas disponible pour l'IPv6, peut-être que ça le sera un jour. L'absence de reverse DNS n'est pas un problème, ça n?empêche pas d'héberger un site web. Là où ça peut poser problème c'est pour un serveur de mail, les mails envoyés depuis ce serveur risquent d'être rejetés[...]

Free: le reverse DNS est de nouveau opérationnel
mecamic (non inscrit)
vendredi 19 juillet 2024 11:14

Bonjour, Merci pour vos tutoriels autour de free. Je suis également en train d'essayer d'héberger un site web derrière une freebox. Je viens de régler la mise en place du reverse dns v4. Il reste la mise en place du reverse dns v6. Son paramétrage n'est pas (encore) accessible chez free. Puis-je sav[...]

Raspberry Pi en récepteur audio Bluetooth (A2DP audio sink)
avatar de Jesus Forain
Jesus Forain
mercredi 3 juillet 2024 23:23

Merci à ceux qui apprécient ce tuto. Je l'ai écris pour que ce soit clair et surtout j'y ai mis toutes les commandes, pour faire en sorte que si tu suis le tuto, tu n'a pas à te poser de questions ou aller chercher de l'aide ailleurs. Si tous les développeurs pouvaient faire pareil ça serait super p[...]

Raspberry Pi en récepteur audio Bluetooth (A2DP audio sink)
mabu (non inscrit)
mercredi 3 juillet 2024 09:30

Bonjour,Un grand merci pour ce tuto très bien fait et fonctionnel!Installé sur raspberry PI 0w sous DietPi pour remettre au gout du jour un vieil ampli avec un dac HDMI ? RCA C'est en complément de shareport au cas où le wifi serait ko ou si un invité sans iOS voudrait mettre du son.Ça marche super [...]

Réparation d'une VMC: condensateur HS
Fcna44410 (non inscrit)
jeudi 27 juin 2024 12:53

Merci pour l'info du condensateur j'avais les deux de chaque moteur HS  Ci joint les première manipulation pour savoir par ou commencer  Entre les bornes L1 et N1 puis L2 et N2 (sorties alimentation moteur), il devrait y avoir une tension 230 V. Entre les bornes 0 et REG1 puis 0 et REG2 (régulation [...]

Demander une adresse IP full stack chez Free pour avoir tous les ports
Mat (non inscrit)
jeudi 30 mai 2024 13:13

Merci beaucoup ! 👍

Demander une adresse IP full stack chez Free pour avoir tous les ports
avatar de Jesus Forain
Jesus Forain
mercredi 29 mai 2024 22:43

À l'époque où j'ai écris cet article, il y avait effectivement un problème de réseau chez Free; j'ai trouvé ce bug. À la fin de l'article j'explique un problème de réseau que j'ai rencontré entre une Freebox fibre et ADSL en IPv6 avec un débit réduit mais ça fonctionnait normalement en IPv4.Sur le p[...]

Générer un certificat SSL auto-signé valide pour HTTPS

- 144 vues

Quand on fait du développement web, on a souvent besoin d'utiliser le protocole HTTPS nécessitant d'avoir un certificat SSL. Ce certificat on peut facilement le générer avec openssl sauf que le problème est qu'un tel certificat n'est pas reconnu par le navigateur web qui affiche un avertissement. Pour qu'il soit reconnu, il faut un certificat signé par une autorité de certification reconnue mais ce genre de certificat ne peut être émis que pour un domaine t'appartenant, donc impossible à avoir pour un nom de domaine limité à ton réseau local sur lequel tu fais du développement.

La solution est de créer un certificat pour sa propre autorité de certification et de signer les certificats SSL avec celui-ci.

ATTENTION! Si tu utilises la méthode décrite ici, ton certificat ne sera toujours pas reconnu comme étant valide par n'importe quel navigateur internet. Il va falloir installer manuellement dans le navigateur le certificat de l'autorité de certification qui va permettre à ton navigateur de valider ton certificat correspondant à un nom de domine et ainsi ne plus t'afficher aucun avertissement de sécurité.

 

Certificat de l'autorité de certification

L'autorité de certification est l'organisme qui émets les certificats, par exemple Let's encrypt. Ici on va créer notre propre autorité de certification, ce qui reviens à créer un certificat correspondant à l'autorité de certification et qui va servir à signer les certificats que l'on va émettre pour un nom de domaine (ça peut aussi être une adresse IP).

 

Générer une clé privée

Cette clé va servir à créer les certificats de l'autorité de certification et sera utilisée pour signer les certificats SSL de nom de domaine. Une fois généré, ce fichier doit être conservé et ne plus être modifié si tu veux créer de nouveaux certificats pour cette autorité de certification.
En conditions réelles, si l'on était une véritable autorité de certification, on garderait cette clé secrète. 

openssl genrsa -out CA.key 4096

Tu dois obtenir un fichier CA.key

 

Générer un certificat racine auto signé

Pour le paramètre “-subj” libre à toi de mettre ce que tu veux dans les champs tant que tu respectes la syntaxe. Pour ne pas s'embêter, puisque notre certificat sera utilisé juste pour faire du développement et des tests, on crée un certificat valable 100 ans avec la paramètre “-days 36500”.
En conditions réelles, ce certificat est rendu public et est intégré aux navigateurs internet par leurs éditeurs.

openssl req \
-x509 \
-sha256 \
-new \
-nodes \
-subj '/C=FR/ST=/L=/O=hôte locale/OU=/CN=certificat racine localhost/emailAddress=' \
-key CA.key \
-days 36500 \
-out CA.pem

Tu dois obtenir un fichier CA.pem

 

Certificats serveur

 

Générer une clé privée

Ici on choisit elliptic curve car c'est plus rapide.
En conditions réelles, ce fichier est donné au demandeur du certificat mais est gardé secret. Ce fichier est utilisé par le serveur web pour valider les connexions des clients.

openssl ecparam -name prime256v1 -genkey -out server.key

Tu dois obtenir un fichier server.key

 

Demande de création de certificat ou CSR (Certificate Signing Request)

Pour le paramètre “-subj”, comme pour l'autorité de certification, libre à toi de mettre ce que tu veux.

openssl req \
-new \
-sha256 \
-key server.key \
-subj "/C=FR/ST=/O=dev server/CN=localhost" \
-out server.csr

Tu dois obtenir un fichier server.csr

 

Générer le certificat serveur

Dans “-extfile” indique tous les noms de domaines que tu sera susceptible d'utiliser dans ton navigateur pour accéder à ton serveur web. Comme dans l'exemple, tu peux utiliser aussi bien une adresse IP qu'un nom de domaine. Pour utiliser tes propres noms de domaines, utilise le fichier hosts de la machine cliente.

openssl x509 \
-req \
-extfile <(printf "subjectAltName = IP:127.0.0.1, IP:192.168.1.123, DNS:localhost, DNS:*.jesus-forain-dev.fr, DNS:jesus-forain-dev.fr, DNS:www.jesus-forain-dev.fr") \
-in server.csr \
-CA CA.pem \
-CAkey CA.key \
-CAcreateserial \
-out server.crt \
-days 36500 \
-sha256

Tu dois obtenir un fichier server.crt

 

Utilisation des certificats

Serveur web

Ton serveur web a besoin des fichiers server.crt et server.key. N'oublie pas de le redémarre pour appliquer les changements.

Apache

Dans la section “VirtualHost” configure ces 2 paramètres:

SSLCertificateFile /<CHEMIN>/server.crt
SSLCertificateKeyFile /<CHEMIN>/server.key

Nginx

Dans la section “server {” configure ces 2 paramètres:

ssl_certificate /<CHEMIN>/server.crt;
ssl_certificate_key /<CHEMIN>/server.key;

 

Navigateur

Pour que notre certificat soit reconnu, il va falloir importer le certificat de l'autorité de certification CA.pem dans le navigateur. L'opération est propre à chaque navigateur.

Firefox: 

“Paramètres” > 
“Vie privée et sécurité” (colonne de gauche) > 
descendre jusqu'à la section “Certificats” puis “Afficher les certificats…” >
“Autorités” >
“Importer” puis sélectionner le fichier CA.pem

Charge la page, elle doit s'ouvrir sans avertissement et si tu clique sur le cadenas il devrait t'indiquer que la connexion est sécurisée. Cependant, Firefox t'informe qu'un certificat a été importé et t'affiche un message sans conséquences “Connexion vérifiée par un émetteur de certificat non reconnu par Mozilla.”.

Android:

Le certificat doit être installé au niveau du système pour que le navigateur Google Chrome le reconnaisse comme étant valide. À chaque démarrage du téléphone, tu auras une notification te disant qu'un certificat non reconnu a été installé mais c'est juste pour t'avertir d'un point de vue sécurité et ça n'a pas de conséquences sur le reste.

La procédure peut différer selon la version du système et la surcouche constructeur.

Copier le certificat CA.pem sur le téléphone, peu importe que ce soit la carte SD ou le stockage interne du téléphone.

Ouvrir les paramètres (icône engrenage) puis aller dans
“Sécurite et confidentialité” >
“Autres paramètres de sécurité” >
"Installer depuis stock. appar.” >
“Certificat AC” > sélectionner le fichier CA.pem

 

Annexe

Afficher les infos d'un certificat.

openssl x509 -in <CERTIFICAT> -noout -text

Afficher les infos du fichier csr

openssl req -in <FICHIER_CSR> -noout -text

 

partager sur Facebook
COMMENTAIRES
Envoyer un commentaire
chargement de l'éditeur en cours...
Envoi d'images
Cliquez sur le bouton "insérer l'image" pour l'ajouter à votre message, le fond de l'image passe en vert indiquant qu'elle est ajoutée. Les images non insérés sont supprimées.

Envoi de fichiers

Attention! vous n'êtes pas connecté, vous postez en mode invité.