Tout certificat d’AC racine est auto-signé ; entre une racine de confiance et une erreur « self-signed certificate », la seule différence est que le vérificateur l’a ou non dans son magasin. Un certificat de serveur auto-signé assure le chiffrement contre l’écoute passive, mais aucune authentification tant que les clients ne l’épinglent pas ou ne l’installent pas : c’est pourquoi les navigateurs affichent NET::ERR_CERT_AUTHORITY_INVALID et que les outils signalent self-signed certificate.
Pour le développement, une AC privée locale (mkcert, step-ca ou quelques commandes OpenSSL) fonctionne mieux que des certificats feuilles auto-signés individuels : vous installez une seule racine et émettez de vrais certificats avec des SAN pour chaque hôte. Ne désactivez jamais la vérification dans le code (verify=False, rejectUnauthorized: false, InsecureSkipVerify) pour faire accepter un tel certificat.
Une commande utile : openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 -nodes -keyout key.pem -out cert.pem -days 30 -subj "/CN=localhost" -addext "subjectAltName=DNS:localhost,IP:127.0.0.1".