Générer et exporter des certificats pour les connexions de point à site à l’aide de PowerShellGenerate and export certificates for Point-to-Site using PowerShell

Les connexions de point à site utilisent des certificats pour l’authentification.Point-to-Site connections use certificates to authenticate. Cet article explique comment créer un certificat racine auto-signé et générer des certificats clients à l’aide de PowerShell sous Windows 10 ou Windows Server 2016.This article shows you how to create a self-signed root certificate and generate client certificates using PowerShell on Windows 10 or Windows Server 2016. Pour des instructions sur d’autres certificats, voir Certificats - Linux ou Certificats - MakeCert.If you are looking for different certificate instructions, see Certificates - Linux or Certificates - MakeCert.

Vous devez suivre les étapes de cet article sur un ordinateur exécutant Windows 10 ou Windows Server 2016.You must perform the steps in this article on a computer running Windows 10 or Windows Server 2016. Les applets de commande PowerShell que vous utilisez pour générer des certificats font partie du système d’exploitation et ne fonctionnent pas sur d’autres versions de Windows.The PowerShell cmdlets that you use to generate certificates are part of the operating system and do not work on other versions of Windows. L’ordinateur Windows 10 ou Windows Server 2016 est nécessaire uniquement pour générer les certificats.The Windows 10 or Windows Server 2016 computer is only needed to generate the certificates. Une fois les certificats générés, vous pouvez les charger ou les installer sur n’importe quel système d’exploitation client pris en charge.Once the certificates are generated, you can upload them, or install them on any supported client operating system.

Si vous n’avez pas accès à un ordinateur Windows 10 ou Windows Server 2016, vous pouvez utiliser MakeCert pour générer des certificats.If you do not have access to a Windows 10 or Windows Server 2016 computer, you can use MakeCert to generate certificates. Les certificats générés à l’aide de l’une de ces deux méthodes peuvent être installés sur n’importe quel système d’exploitation client pris en charge.The certificates that you generate using either method can be installed on any supported client operating system.

Créer un certificat racine auto-signéCreate a self-signed root certificate

Utilisez la cmdlet New-SelfSignedCertificate pour créer un certificat racine auto-signé.Use the New-SelfSignedCertificate cmdlet to create a self-signed root certificate. Pour obtenir des informations sur des paramètres supplémentaires, consultez New-SelfSignedCertificate.For additional parameter information, see New-SelfSignedCertificate.

  1. Sur un ordinateur sous Windows 10 ou Windows Server 2016, ouvrez une console Windows PowerShell avec élévation de privilèges.From a computer running Windows 10 or Windows Server 2016, open a Windows PowerShell console with elevated privileges. Ces exemples ne fonctionnent pas avec « Essayez-le » Azure Cloud Shell.These examples do not work in the Azure Cloud Shell "Try It". Vous devez les exécuter localement.You must run these examples locally.

  2. Utilisez l’exemple suivant pour créer le certificat racine auto-signé.Use the following example to create the self-signed root certificate. L’exemple suivant crée un certificat racine auto-signé nommé « P2SRootCert », automatiquement installé dans « Certificates-Current User\Personal\Certificates ».The following example creates a self-signed root certificate named 'P2SRootCert' that is automatically installed in 'Certificates-Current User\Personal\Certificates'. Vous pouvez afficher le certificat en ouvrant certmgr.msc ou Gérer les certificats utilisateur.You can view the certificate by opening certmgr.msc, or Manage User Certificates.

    $cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
    -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable `
    -HashAlgorithm sha256 -KeyLength 2048 `
    -CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign
    
  3. Laissez la console PowerShell ouverte si vous souhaitez créer un certificat client juste après avoir créé ce certificat racine.Leave the PowerShell console open if you want to create a client certificate right after creating this root certificate.

Générer un certificat clientGenerate a client certificate

Chaque ordinateur client qui se connecte à un réseau virtuel avec une connexion de point à site doit avoir un certificat client installé.Each client computer that connects to a VNet using Point-to-Site must have a client certificate installed. Vous générez un certificat client à partir du certificat racine auto-signé, puis l’exportez et l’installez.You generate a client certificate from the self-signed root certificate, and then export and install the client certificate. Si le certificat client n’est pas installé, l’authentification échoue.If the client certificate is not installed, authentication fails.

Les étapes suivantes vous guident dans la génération d’un certificat client à partir d’un certificat racine auto-signé.The following steps walk you through generating a client certificate from a self-signed root certificate. Vous pouvez générer plusieurs certificats clients à partir d’un même certificat racine.You may generate multiple client certificates from the same root certificate. Lorsque vous générez des certificats clients suivant les étapes ci-dessous, le certificat client est automatiquement installé sur l’ordinateur que vous avez utilisé pour générer le certificat.When you generate client certificates using the steps below, the client certificate is automatically installed on the computer that you used to generate the certificate. Si vous souhaitez installer un certificat client sur un autre ordinateur client, vous pouvez exporter le certificat.If you want to install a client certificate on another client computer, you can export the certificate.

Les exemples utilisent la cmdlet New-SelfSignedCertificate pour générer un certificat client qui expire au bout d’un an.The examples use the New-SelfSignedCertificate cmdlet to generate a client certificate that expires in one year. Pour obtenir des informations sur des paramètres supplémentaires, telles que la définition d’une valeur d’expiration différente pour le certificat client, consultez New-SelfSignedCertificate.For additional parameter information, such as setting a different expiration value for the client certificate, see New-SelfSignedCertificate.

Exemple 1 : session de la console PowerShell toujours ouverteExample 1 - PowerShell console session still open

Utilisez cet exemple si vous n’avez pas fermé la console PowerShell après avoir créé le certificat racine auto-signé.Use this example if you have not closed your PowerShell console after creating the self-signed root certificate. Cet exemple continue à partir de la section précédente et utilise la variable « $cert » déclarée.This example continues from the previous section and uses the declared '$cert' variable. Si vous avez fermé la console PowerShell après la création du certificat racine auto-signé, ou que vous créez des certificats clients supplémentaires dans une nouvelle session de console PowerShell, suivez les étapes décrites dans l’exemple 2.If you closed the PowerShell console after creating the self-signed root certificate, or are creating additional client certificates in a new PowerShell console session, use the steps in Example 2.

Modifiez et exécutez l’exemple pour générer un certificat client.Modify and run the example to generate a client certificate. Si vous exécutez l’exemple suivant sans le modifier, le résultat est un certificat client nommé « P2SChildCert ».If you run the following example without modifying it, the result is a client certificate named 'P2SChildCert'. Si vous souhaitez donner un autre nom au certificat enfant, modifiez la valeur CN.If you want to name the child certificate something else, modify the CN value. Ne modifiez pas la valeur TextExtension lors de l’exécution de cet exemple.Do not change the TextExtension when running this example. Le certificat client que vous générez est automatiquement installé dans « Certificates - Current User\Personal\Certificates » sur votre ordinateur.The client certificate that you generate is automatically installed in 'Certificates - Current User\Personal\Certificates' on your computer.

New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
-Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" `
-Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")

Exemple 2 : nouvelle session de la console PowerShellExample 2 - New PowerShell console session

Si vous créez des certificats clients supplémentaires ou que vous n’utilisez pas la même session PowerShell que pour créer votre certificat racine auto-signé, suivez les étapes suivantes :If you are creating additional client certificates, or are not using the same PowerShell session that you used to create your self-signed root certificate, use the following steps:

  1. Identifiez le certificat racine auto-signé installé sur l’ordinateur.Identify the self-signed root certificate that is installed on the computer. Cette applet de commande renvoie la liste des certificats installés sur votre ordinateur.This cmdlet returns a list of certificates that are installed on your computer.

    Get-ChildItem -Path "Cert:\CurrentUser\My"
    
  2. Recherchez le nom du sujet dans la liste renvoyée, puis copiez l’empreinte qui se trouve à côté dans un fichier texte.Locate the subject name from the returned list, then copy the thumbprint that is located next to it to a text file. Dans l’exemple suivant, il y a deux certificats.In the following example, there are two certificates. Le nom CN est le nom du certificat racine auto-signé à partir duquel vous souhaitez générer un certificat enfant.The CN name is the name of the self-signed root certificate from which you want to generate a child certificate. Dans ce cas, « P2SRootCert ».In this case, 'P2SRootCert'.

    Thumbprint                                Subject
    
    AED812AD883826FF76B4D1D5A77B3C08EFA79F3F  CN=P2SChildCert4
    7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655  CN=P2SRootCert
    
  3. Déclarez une variable pour le certificat racine avec l’empreinte de l’étape précédente.Declare a variable for the root certificate using the thumbprint from the previous step. Remplacez THUMBPRINT par l’empreinte du certificat racine à partir duquel vous souhaitez générer un certificat enfant.Replace THUMBPRINT with the thumbprint of the root certificate from which you want to generate a child certificate.

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\THUMBPRINT"
    

    Par exemple, avec l’empreinte numérique pour P2SRootCert de l’étape précédente, la variable ressemble à ceci :For example, using the thumbprint for P2SRootCert in the previous step, the variable looks like this:

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
    
  4. Modifiez et exécutez l’exemple pour générer un certificat client.Modify and run the example to generate a client certificate. Si vous exécutez l’exemple suivant sans le modifier, le résultat est un certificat client nommé « P2SChildCert ».If you run the following example without modifying it, the result is a client certificate named 'P2SChildCert'. Si vous souhaitez donner un autre nom au certificat enfant, modifiez la valeur CN.If you want to name the child certificate something else, modify the CN value. Ne modifiez pas la valeur TextExtension lors de l’exécution de cet exemple.Do not change the TextExtension when running this example. Le certificat client que vous générez est automatiquement installé dans « Certificates - Current User\Personal\Certificates » sur votre ordinateur.The client certificate that you generate is automatically installed in 'Certificates - Current User\Personal\Certificates' on your computer.

    New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
    -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable `
    -HashAlgorithm sha256 -KeyLength 2048 `
    -CertStoreLocation "Cert:\CurrentUser\My" `
    -Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")
    

Exporter la clé publique du certificat racine (.cer)Export the root certificate public key (.cer)

Après avoir créé un certificat racine autosigné, exportez le fichier .cer de clé publique du certificat racine (et non celui de la clé privée).After creating a self-signed root certificate, export the root certificate public key .cer file (not the private key). Vous chargerez ce fichier plus tard sur Azure.You will later upload this file to Azure. Les étapes suivantes vous aideront à exporter le fichier .cer pour votre certificat racine auto-signé :The following steps help you export the .cer file for your self-signed root certificate:

  1. Pour obtenir un fichier .cer du certificat, ouvrez Gérer les certificats utilisateur.To obtain a .cer file from the certificate, open Manage user certificates. Localisez le certificat racine auto-signé, généralement dans « Certificates - Curent User\Personal\Certificates » et cliquez avec le bouton droit.Locate the self-signed root certificate, typically in 'Certificates - Current User\Personal\Certificates', and right-click. Cliquez sur Toutes les tâches, puis cliquez sur Exporter.Click All Tasks, and then click Export. Cette opération ouvre l’Assistant Exportation de certificat.This opens the Certificate Export Wizard. Si vous ne trouvez pas le certificat sous Current User\Personal\Certificates, il est possible que vous ayez ouvert par erreur « Certificats – Ordinateur local » et non « Certificats – Utilisateur actuel ».If you can't find the certificate under Current User\Personal\Certificates, you may have accidentally opened "Certificates - Local Computer", rather than "Certificates - Current User"). Si vous voulez ouvrir le Gestionnaire de certificats dans le champ d’application utilisateur actuel en utilisant PowerShell, tapez certmgr dans la fenêtre de la console.If you want to open Certificate Manager in current user scope using PowerShell, you type certmgr in the console window.

    Exporter

  2. Dans l’assistant, cliquez sur Suivant.In the Wizard, click Next.

    Exportation du certificat

  3. Sélectionnez Non, ne pas exporter la clé privée, puis cliquez sur Suivant.Select No, do not export the private key, and then click Next.

    N’exportez pas la clé privée

  4. Sur la page Format de fichier d’exportation, sélectionnez Codé à base 64 X.509 (.cer). , puis cliquez sur Suivant.On the Export File Format page, select Base-64 encoded X.509 (.CER)., and then click Next.

    Encodage en base 64

  5. Dans Fichier à exporter, cliquez sur Parcourir pour accéder à l’emplacement vers lequel vous souhaitez exporter le certificat.For File to Export, Browse to the location to which you want to export the certificate. Pour la zone Nom de fichier, nommez le fichier de certificat.For File name, name the certificate file. Cliquez ensuite sur Suivant.Then, click Next.

    ...

  6. Cliquez sur Terminer pour exporter le certificat.Click Finish to export the certificate.

    Finish

  7. Votre certificat est correctement exporté.Your certificate is successfully exported.

    Succès

  8. Le certificat exporté ressemble à ceci :The exported certificate looks similar to this:

    Exporté

  9. Si vous ouvrez le certificat exporté à l’aide du Bloc-notes, vous verrez quelque chose de similaire à cet exemple.If you open the exported certificate using Notepad, you see something similar to this example. La section en bleu contient les informations qui sont chargées sur Azure.The section in blue contains the information that is uploaded to Azure. Si vous ouvrez votre certificat avec le Bloc-notes et qu’il ne ressemble pas à celui de l’exemple, cela signifie généralement que vous ne l’avez pas exporté au format X.509 de base 64 (.cer).If you open your certificate with Notepad and it does not look similar to this, typically this means you did not export it using the Base-64 encoded X.509(.CER) format. De plus, si vous voulez utiliser un autre éditeur de texte, notez que certains éditeurs peuvent ajouter une mise en forme non souhaitée en arrière-plan.Additionally, if you want to use a different text editor, understand that some editors can introduce unintended formatting in the background. Cela peut créer des problèmes quand vous chargez le texte de ce certificat sur Azure.This can create problems when uploaded the text from this certificate to Azure.

    Ouverture du fichier avec le Bloc-notes

Exporter le certificat racine autosigné et la clé privée pour les stocker (facultatif)Export the self-signed root certificate and private key to store it (optional)

Vous souhaiterez peut-être exporter le certificat racine autosigné et le stocker à des fins de sauvegarde.You may want to export the self-signed root certificate and store it safely as backup. Si nécessaire, vous pouvez l’installer ultérieurement sur un autre ordinateur et générer d’autres certificats clients.If need be, you can later install it on another computer and generate more client certificates. Pour exporter le certificat racine auto-signé au format .pfx, sélectionnez le certificat racine et suivez les étapes décrites dans la section Exporter un certificat client.To export the self-signed root certificate as a .pfx, select the root certificate and use the same steps as described in Export a client certificate.

Exporter le certificat clientExport the client certificate

Lorsque vous générez un certificat client, il est automatiquement installé sur l’ordinateur que vous avez utilisé pour le générer.When you generate a client certificate, it's automatically installed on the computer that you used to generate it. Si vous souhaitez installer le certificat client sur un autre ordinateur client, il vous faut exporter le certificat client généré.If you want to install the client certificate on another client computer, you need to export the client certificate that you generated.

  1. Pour exporter un certificat client, ouvrez Gérer les certificats utilisateur.To export a client certificate, open Manage user certificates. Les certificats clients que vous avez générés se trouvent par défaut dans « Certificates - Current User\Personal\Certificates ».The client certificates that you generated are, by default, located in 'Certificates - Current User\Personal\Certificates'. Cliquez avec le bouton droit sur le certificat client à exporter, cliquez sur Toutes les tâches, puis cliquez sur Exporter pour ouvrir l’Assistant Exportation du certificat.Right-click the client certificate that you want to export, click all tasks, and then click Export to open the Certificate Export Wizard.

    Exporter

  2. Dans l’Assistant Exportation de certificat, cliquez sur Suivant pour continuer.In the Certificate Export Wizard, click Next to continue.

    Suivant

  3. Sélectionnez Oui, exporter la clé privée, puis cliquez sur Suivant.Select Yes, export the private key, and then click Next.

    Exporter la clé privée

  4. Dans la page Format de fichier d’exportation, laissez les valeurs par défaut sélectionnées.On the Export File Format page, leave the defaults selected. Assurez-vous que l’option Inclure tous les certificats dans le chemin d’accès de certification si possible est sélectionnée.Make sure that Include all certificates in the certification path if possible is selected. Ce paramètre exporte également les informations de certificat racine qui sont nécessaires à la réussite de l’authentification du client.This setting additionally exports the root certificate information that is required for successful client authentication. Sans cela, l’authentification du client échoue car le client n’a pas le certificat racine approuvé.Without it, client authentication fails because the client doesn't have the trusted root certificate. Cliquez ensuite sur Suivant.Then, click Next.

    Format de fichier d’exportation

  5. Dans la page Sécurité , vous devez protéger la clé privée.On the Security page, you must protect the private key. Si vous choisissez d’utiliser un mot de passe, veillez à enregistrer ou à mémoriser celui que vous définissez pour ce certificat.If you select to use a password, make sure to record or remember the password that you set for this certificate. Cliquez ensuite sur Suivant.Then, click Next.

    security

  6. Dans Fichier à exporter, cliquez sur Parcourir pour accéder à l’emplacement vers lequel vous souhaitez exporter le certificat.On the File to Export, Browse to the location to which you want to export the certificate. Pour la zone Nom de fichier, nommez le fichier de certificat.For File name, name the certificate file. Cliquez ensuite sur Suivant.Then, click Next.

    Fichier à exporter

  7. Cliquez sur Terminer pour exporter le certificat.Click Finish to export the certificate.

    Terminer

Installer un certificat client exportéInstall an exported client certificate

Chaque client qui se connecte au réseau virtuel via une connexion P2S a besoin d’un certificat client installé localement.Each client that connects to the VNet over a P2S connection requires a client certificate to be installed locally.

Pour installer un certificat client, consultez Installer un certificat client pour des connexions point à site.To install a client certificate, see Install a client certificate for Point-to-Site connections.

Étapes suivantesNext steps

Poursuivez votre configuration point à site.Continue with your Point-to-Site configuration.