Comment créer et gérer des certificats auto-signés sous Windows — Real Insights
Quiconque a déjà manipulé des infrastructures à clés publiques (PKI) Windows connaît MakeCert.exel’outil traditionnel de génération de certificats auto-signés. Mais soyons honnêtes : de nos jours, New-SelfSignedCertificatela commande PowerShell est bien plus pratique : plus flexible, sans téléchargement supplémentaire, et compatible avec les technologies modernes comme les SAN et SHA-256. Cependant, son utilisation n’est pas des plus intuitives, surtout pour ceux qui ne sont pas habitués aux commandes ou à la gestion des certificats. Voici donc un guide pratique pour créer, exporter ou utiliser un certificat auto-signé selon vos besoins. Ce guide explique comment créer un certificat pour des tests, un site interne ou simplement pour le plaisir, sans avoir à investir dans une véritable autorité de certification. Vous apprendrez également à exporter ce certificat, à le lier à IIS et à effectuer des tâches de gestion de base. Attention : sur certaines configurations, la gestion des autorisations peut s’avérer complexe ou nécessiter des privilèges élevés pour PowerShell. Passons maintenant à la pratique, étape par étape. Attendez-vous à des lignes de commande, des chemins de menus et autres éléments qui peuvent déconcerter au premier abord, mais qui deviennent clairs après quelques essais.
Création d’un certificat auto-signé avec PowerShell
Utilisez la bonne cmdlet et découvrez pourquoi c’est important.
Son utilisation New-SelfSignedCertificateest bien meilleure que celle d’anciens outils comme MakeCert.exe— d’abord parce qu’il est intégré, et ensuite parce qu’il prend en charge les SAN, SHA-256 et des options de clés plus performantes. Il est idéal pour créer un certificat SSL de test pour IIS, effectuer des tests d’API ou pour des services internes. Pour afficher toutes les options, exécutez : `powershell Get-Command -Module PKI`, qui listera toutes les commandes associées, principalement New-SelfSignedCertificatedans le module PKI. Attention : cet outil est principalement destiné au développement et aux tests, et non à la production. Pour le déploiement, un certificat émis par une autorité de certification (CA) reste la meilleure solution.
Comment générer un certificat SSL simple pour votre domaine de test
Supposons que vous souhaitiez un certificat pour test.contoso.com. Pour cela, utilisez simplement la commande suivante : `powershell New-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation cert:\LocalMachine\My`.Cette commande crée un certificat, l’enregistre dans le magasin « Mes » (Personnel) de votre ordinateur et affiche son empreinte numérique ainsi que d’autres informations. Vous pouvez ensuite le vérifier dans certlm.msc, dans la section « Personnel » (Windows a tendance à masquer certaines informations).Attention : si vous n’exécutez pas PowerShell en tant qu’administrateur, une erreur « Accès refusé » risque de s’afficher. Dans ce cas, vous devrez peut-être cliquer avec le bouton droit sur PowerShell et sélectionner « Exécuter en tant qu’administrateur ».Sur certaines machines, même avec cette option, les autorisations peuvent être capricieuses. De plus, si vous spécifiez un autre fournisseur de services cryptographiques, assurez-vous qu’il est installé, sinon vous obtiendrez des erreurs de fournisseur.
Ajoutez les SAN ou plusieurs noms, et pas seulement le CN.
Créer un simple certificat ? Rien de compliqué. Mais que faire si votre certificat nécessite plusieurs noms DNS, voire des adresses IP ? Le -DnsNameparamètre accepte un tableau : `powershell New-SelfSignedCertificate -DnsName adfs1.contoso.com, web_gw.contoso.com, enterprise_reg.contoso.com -CertStoreLocation cert:\LocalMachine\My`.Et pour une adresse IP ? Utilisez -TextExtensionplutôt -DnsName`-TextExtension @(« 2.5.29.17={text}IPAddress=10.1.2.3, DNS=TESTServer1, DNS=TESTServer1.local »)`.C’est un peu étrange, mais ça fonctionne.
Exporter votre certificat auto-signé pour l’installation ou le partage
Si vous souhaitez exporter la clé privée au format PFX pour l’importer ailleurs, vous aurez besoin de son empreinte numérique. Vérifiez-la avec : `powershell Get-ChildItem -Path « Cert:\LocalMachine\My » | Where-Object { $_. Thumbprint -eq « YOUR_THUMBPRINT » }`.Remplacez `YOUR_THUMBPRINT` par votre empreinte numérique. Pour exporter : `powershell $CertPassword = ConvertTo-SecureString -String « YourPassword » -Force –AsPlainText Export-PfxCertificate -Cert cert:\LocalMachine\My\YOUR_THUMBPRINT -FilePath C:\temp\mycert.pfx -Password $CertPassword`.Pour la clé publique uniquement (sans clé privée), vous pouvez utiliser : `powershell Export-Certificate -Cert cert:\LocalMachine\My\YOUR_THUMBPRINT -FilePath C:\temp\mycert.cer`.Le fichier de certificat sera alors enregistré.À partir de là, la procédure habituelle : – Double-cliquez sur le fichier `.cer` pour l’installer via l’interface graphique – Ou utilisez l’assistant d’importation de certificats pour l’ajouter aux autorités racines de confiance si nécessaire. Remarque : vous devez disposer de droits d’administrateur pour exporter les clés privées ou les placer dans les magasins LocalMachine.
Création d’une autorité de certification racine et d’une chaîne d’émission (facultatif mais pratique)
Vous pouvez créer un certificat d’autorité de certification racine, puis générer des certificats subordonnés à partir de celui-ci ; utile pour les tests internes ou la création de chaînes d’autorités de certification. Exemple : powershell `$rootCert = New-SelfSignedCertificate -Subject « CN=TestRootCA, O=MyOrg » -KeyExportPolicy Exportable -KeyUsage CertSign, CRLSign, DigitalSignature -KeyLength 2048 -HashAlgorithm « SHA256 » -CertStoreLocation cert:\LocalMachine\My $intermediateCert = New-SelfSignedCertificate -Subject « CN=TestSubCA, O=MyOrg » -Signer $rootCert -CertStoreLocation cert:\LocalMachine\My` ### En cas de problème : – Exécution sans droits d’administrateur ? Attendez-vous à des erreurs d’accès refusé.- Problèmes avec le fournisseur de chiffrement ? Assurez-vous que le fournisseur spécifié existe.- Temps de génération longs ? Il peut s’agir simplement d’une machine virtuelle lente ou d’un système surchargé.
Comment configurer IIS pour utiliser votre certificat auto-signé
Une fois le certificat obtenu, ouvrez le Gestionnaire des services Internet (IIS) (`inetmgr.exe`).Dans la section Liaisons de votre site, ajoutez ou modifiez une liaison HTTPS et sélectionnez votre nouveau certificat. Vous pouvez également effectuer la liaison via PowerShell : `powershell New-IISSiteBinding -Name « Default Web Site » -BindingInformation « *:443: » -CertificateThumbPrint « votre_empreinte » -CertStoreLocation « cert:\LocalMachine\My » -Protocol https` (Remarque : cette commande dépend de votre configuration IIS, mais généralement, on utilise l’interface graphique ou les scripts des outils d’administration IIS.) Si vous souhaitez effectuer la liaison directement par empreinte numérique : `powershell # Remplacez l’empreinte numérique par celle de votre certificat $thumbprint = « VOTRE_EMPREINTE_NUMÉRIQUE » Import-Module IISAdministration New-IISSiteBinding -Name « Default Web Site » -BindingInformation « *:443: » -CertificateThumbPrint $thumbprint -CertStoreLocation « cert:\LocalMachine\My »` — Remarque importante : ces méthodes sont idéales pour les tests, mais les navigateurs généreront des erreurs car les certificats sont auto-signés. Les certificats ne sont pas approuvés par défaut. Vous devrez installer manuellement votre autorité de certification racine ou approuver le certificat sur votre machine locale pour un fonctionnement optimal. Nous espérons que ces informations vous auront éclairé sur la création, l’exportation et l’utilisation de certificats auto-signés en toute simplicité. Bien que cette étape ne soit pas la plus passionnante de l’administration Windows, elle est cruciale pour le développement d’outils internes et les tests de sécurité.
Résumé
- À utiliser
New-SelfSignedCertificatepour la création de certificats modernes et flexibles. - Spécifiez les SAN avec des baies ou
-TextExtension. - Exporter au format PFX ou CER pour le déploiement et la configuration de la confiance.
- Liez votre certificat à IIS via l’interface graphique ou PowerShell.
Conclure
Configurer un certificat auto-signé n’est pas toujours une mince affaire, mais une fois le coup de main pris, c’est assez simple. Pensez juste à exécuter PowerShell en tant qu’administrateur de temps en temps et à conserver une trace de vos empreintes numériques. Cela reste une méthode fiable pour tester le protocole HTTPS ou chiffrer le trafic interne sans avoir recours à une véritable autorité de certification. J’espère que cela permettra à certains d’éviter des pièges courants ; cette méthode a fonctionné pour moi sur plusieurs configurations, alors j’espère qu’elle fonctionnera aussi pour vous.