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 auto-hébergé sur un mini PC avec une connexion fibre
Rechercher & filtrer
Filtrer par année / mois
Derniers commentaires
Raspberry Pi en récepteur audio Bluetooth (A2DP audio sink)
Avatar par défaut
Gregouille (non inscrit)
dimanche 26 janvier 2025 13:46

Bonjour! J'ai enfin réussi ! Le problème résidait dans bluez, malgré les multiples distros que j'ai testé j'avais toujours un conflit quelque part, et là après une énième réinstalle propre et de longues recherches sur toutes les l[...]

Demander une adresse IP full stack chez Free pour avoir tous les ports
Avatar de Jesus Forain
Jesus Forain
samedi 25 janvier 2025 11:14

Le problème doit venir du réseau Free. Si c'était le VPN de l'entreprise ça ne fonctionnerait pas quelque soit le fournisseur. Et l'IP partagée n'empêche pas l'utilisation d'un VPN, c'est surtout utile si comme moi tu héberges un serveur web et que tu [...]

Demander une adresse IP full stack chez Free pour avoir tous les ports
Avatar par défaut
Steph (non inscrit)
jeudi 23 janvier 2025 12:21

Bonjour, Merci pour ton blog et toutes ces infos. J'ai un soucis un peu tricky. Depuis quelques semaines (impossible de me rappeler quand exactement), lorsque je suis en télétravail via le VPN de mon entreprise (via ma freebox pop), j'ai des erreurs reseau (fermeture de socket) entre l[...]

Starship flight 7
Avatar de Jesus Forain
Jesus Forain
lundi 20 janvier 2025 17:38

Le décollage et le rattrapage du booster vu par les caméras de NASASpaceflight.   ▶  

Starship flight 7
Avatar de Jesus Forain
Jesus Forain
vendredi 17 janvier 2025 18:15

D'après un tweet d'Elon Musk, l'explosion serait due à une fuite d'oxygène ou de carburant au dessus du pare-feu d'un des moteurs. Cette fuite trop importante a causée une surpression et serait la cause de l'explosion. Le moment exact de l'explosion à 3'11": [...]

Starship flight 7
Avatar de Jesus Forain
Jesus Forain
vendredi 17 janvier 2025 00:36

Voilà comment a fini le Ship au niveau des Îles Turques-et-Caïques juste à côté de Cuba. Vidéo 1   ▶  

Starship flight 7
Avatar de Jesus Forain
Jesus Forain
vendredi 17 janvier 2025 00:08

Malheureusement, juste après le rattrapage du booster et ce grand moment d'émotions, le Starship a été perdu. C'était le premier vol de la version 2, on devrait en apprendre davantage dans les prochains jours sur ce qu'il s'est passé. Il ne faut pas oublier [...]

Starship flight 7
Avatar de Jesus Forain
Jesus Forain
jeudi 16 janvier 2025 23:45

Rattrapage du booster réussi!

Starship flight 7
Avatar de Jesus Forain
Jesus Forain
jeudi 16 janvier 2025 20:48

C'est confirmé, un petit avion de la NASA est en vol depuis quelques instants au large de l'Australie pour suivre la rentrée atmosphérique du Starship. Lien de suivi sur Flightradar 24.  

Raspberry Pi en récepteur audio Bluetooth (A2DP audio sink)
Avatar par défaut
Gregouille (non inscrit)
mercredi 8 janvier 2025 17:06

Merci pour ton retour, je vais faire des recherches dans ce sens. 

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

- 454 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 pour les insérer dans le message
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 pour les télécharger

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