Générer et exporter des certificats pour les connexions de point à site en utilisant PowerShell

Cet article explique comment créer un certificat racine auto-signé et générer des certificats clients avec PowerShell sur Windows 10 ou version ultérieure ou Windows Server 2016 ou version ultérieure. Les étapes décrites dans cet article vous aident à créer des fichiers .pfx et .cer. Si vous n’avez pas d’ordinateur Windows, vous pouvez utiliser une petite machine virtuelle Windows comme solution de contournement.

Les cmdlets PowerShell que vous utilisez pour générer des certificats font partie du système d’exploitation. Ils ne fonctionnent pas sur d’autres versions de Windows. Le système d’exploitation hôte est utilisé uniquement pour générer les certificats. Une fois que les certificats sont générés, vous pouvez les charger ou les installer sur n’importe quel système d’exploitation client pris en charge.

Si vous n’avez pas d’ordinateur qui répond à la configuration requise du système d’exploitation, vous pouvez utiliser MakeCert pour générer des certificats. 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.

Créer un certificat racine autosigné

Utilisez la cmdlet New-SelfSignedCertificate pour créer un certificat racine auto-signé. Pour obtenir des informations sur des paramètres supplémentaires, consultez New-SelfSignedCertificate.

  1. Sur un ordinateur exécutant Windows 10 ou ultérieur, ou Windows Server 2016, ouvrez une console Windows PowerShell avec élévation de privilèges.

  2. Créez un certificat racine auto-signé. L'exemple suivant crée un certificat racine auto-signé nommé 'P2SRootCert' qui est automatiquement installé dans 'Certificates-Current User\Personal\Certificates'. Vous pouvez afficher le certificat en ouvrant certmgr.msc ou Gérer les certificats utilisateur.

    Effectuez les modifications nécessaires avant d'utiliser cet exemple. Le paramètre 'NotAfter' est facultatif. Par défaut, sans ce paramètre, le certificat expire dans 1 an.

    $params = @{
        Type = 'Custom'
        Subject = 'CN=P2SRootCert'
        KeySpec = 'Signature'
        KeyExportPolicy = 'Exportable'
        KeyUsage = 'CertSign'
        KeyUsageProperty = 'Sign'
        KeyLength = 2048
        HashAlgorithm = 'sha256'
        NotAfter = (Get-Date).AddMonths(24)
        CertStoreLocation = 'Cert:\CurrentUser\My'
    }
    $cert = New-SelfSignedCertificate @params
    
  3. Laissez la console PowerShell ouverte et passez aux étapes suivantes pour générer un certificat client.

Générer un certificat client

Chaque ordinateur client qui se connecte à un réseau virtuel à l'aide d'un point à site doit disposer d'un certificat client installé. Vous générez un certificat client à partir du certificat racine auto-signé, puis l’exportez et l’installez. Si le certificat client n’est pas installé, l’authentification échoue.

Les étapes suivantes vous guident dans la génération d’un certificat client à partir d’un certificat racine auto-signé. Vous pouvez générer plusieurs certificats clients à partir d’un même certificat racine. 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. Si vous souhaitez installer un certificat client sur un autre ordinateur client, exportez le certificat.

Les exemples utilisent l'applet de commande New-SelfSignedCertificate pour générer un certificat client.

Exemple 1 : session de la console PowerShell toujours ouverte

Utilisez cet exemple si vous n’avez pas fermé la console PowerShell après avoir créé le certificat racine auto-signé. Cet exemple continue à partir de la section précédente et utilise la variable « $cert » déclarée. 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.

Modifiez et exécutez l’exemple pour générer un certificat client. Si vous exécutez l’exemple suivant sans le modifier, le résultat est un certificat client nommé « P2SChildCert ». Si vous souhaitez donner un autre nom au certificat enfant, modifiez la valeur CN. Ne modifiez pas la valeur TextExtension lors de l’exécution de cet exemple. Le certificat client que vous générez est automatiquement installé dans « Certificates - Current User\Personal\Certificates » sur votre ordinateur.


   $params = @{
       Type = 'Custom'
       Subject = 'CN=P2SChildCert'
       DnsName = 'P2SChildCert'
       KeySpec = 'Signature'
       KeyExportPolicy = 'Exportable'
       KeyLength = 2048
       HashAlgorithm = 'sha256'
       NotAfter = (Get-Date).AddMonths(18)
       CertStoreLocation = 'Cert:\CurrentUser\My'
       Signer = $cert
       TextExtension = @(
        '2.5.29.37={text}1.3.6.1.5.5.7.3.2')
   }
   New-SelfSignedCertificate @params

Exemple 2 : nouvelle session de la console PowerShell

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é, effectuez les étapes suivantes :

  1. Identifiez le certificat racine auto-signé installé sur l’ordinateur. Cette applet de commande renvoie la liste des certificats installés sur votre ordinateur.

    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. Dans l’exemple suivant, il y a deux certificats. Le nom CN est le nom du certificat racine auto-signé à partir duquel vous souhaitez générer un certificat enfant. Dans ce cas, « 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. Remplacez THUMBPRINT par l’empreinte du certificat racine à partir duquel vous souhaitez générer un certificat enfant.

    $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 :

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
    
  4. Modifiez et exécutez l’exemple pour générer un certificat client. Si vous exécutez l’exemple suivant sans le modifier, le résultat est un certificat client nommé « P2SChildCert ». Si vous souhaitez donner un autre nom au certificat enfant, modifiez la valeur CN. Ne modifiez pas la valeur TextExtension lors de l’exécution de cet exemple. Le certificat client que vous générez est automatiquement installé dans « Certificates - Current User\Personal\Certificates » sur votre ordinateur.

    $params = @{
        Type = 'Custom'
        Subject = 'CN=P2SChildCert'
        DnsName = 'P2SChildCert1'
        KeySpec = 'Signature'
        KeyExportPolicy = 'Exportable'
        KeyLength = 2048
        HashAlgorithm = 'sha256'
        NotAfter = (Get-Date).AddMonths(18)
        CertStoreLocation = 'Cert:\CurrentUser\My'
        Signer = $cert
        TextExtension = @(
         '2.5.29.37={text}1.3.6.1.5.5.7.3.2')
    }
    New-SelfSignedCertificate @params
    

Exporter la clé publique du certificat racine (.cer)

Après avoir créé un certificat racine autosigné, exportez le fichier .cer du certificat racine (et non la clé privée). Vous chargerez ultérieurement dans Azure les données de certificat nécessaires contenues dans le fichier. Procédez comme suit pour exporter le fichier .cer pour votre certificat racine auto-signé et récupérer les données de certificat nécessaires.

  1. Pour obtenir le fichier de certificat .cer, ouvrez Gérer les certificats utilisateur.

    Localisez le certificat racine auto-signé, qui est généralement dans Certificats – Utilisateur actuel\Personnel\Certificats, puis cliquez avec le bouton droit. Sélectionnez Toutes les tâches – >Exporter. Cette opération ouvre l’Assistant Exportation de certificat.

    Si vous ne trouvez pas le certificat sous « Utilisateur actuel\Personnel\Certificats », il est possible que vous ayez ouvert par erreur Certificats – Ordinateur local au lieu de Certificats – Utilisateur actuel.

    Capture d’écran montrant la fenêtre Certificats avec Toutes les tâches, puis Exporter sélectionnés.

  2. Dans l’Assistant, sélectionnez Suivant.

  3. Sélectionnez Non, ne pas exporter la clé privée, puis Suivant.

    Capture d’écran montrant l’option Ne pas exporter la clé privée.

  4. Dans la page Format de fichier d’exportation, sélectionnez X.509 encodé en base64 (.CER)., puis Suivant.

    Capture d’écran montrant l’option Exporter encodé en Base-64.

  5. Dans Fichier à exporter, cliquez sur Parcourir pour accéder à l’emplacement vers lequel vous souhaitez exporter le certificat. Pour la zone Nom de fichier, nommez le fichier de certificat. Sélectionnez ensuite Suivant.

  6. Sélectionnez Terminer pour exporter le certificat.

  7. Une confirmation s’affiche indiquant L’exportation a réussi.

  8. Accédez à l’emplacement où vous avez exporté le certificat et ouvrez-le à l’aide d’un éditeur de texte, comme le Bloc-notes. Si vous avez exporté le certificat au format X.509 encodé en base-64 (.CER) requis, un texte similaire à l’exemple suivant s’affiche. La section mise en évidence en bleu contient les informations que vous copiez et chargez dans Azure.

    Capture d’écran montrant le fichier CER ouvert dans le Bloc-notes avec les données du certificat mises en évidence.

    Si votre fichier ne ressemble pas à l’exemple, cela signifie généralement que vous ne l’avez pas exporté au format X.509 encodé en Base-64 (.CER). De plus, si vous utilisez un autre éditeur de texte que le Bloc-notes, notez que certains éditeurs peuvent ajouter une mise en forme non souhaitée en arrière-plan. Cela peut créer des problèmes quand vous chargez le texte de ce certificat sur Azure.

Exporter le certificat racine autosigné et la clé privée pour les stocker (facultatif)

Vous souhaiterez peut-être exporter le certificat racine autosigné et le stocker à des fins de sauvegarde. Si nécessaire, vous pouvez l’installer ultérieurement sur un autre ordinateur et générer d’autres certificats clients. 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.

Exporter le certificat client

Lorsque vous générez un certificat client, il est automatiquement installé sur l’ordinateur que vous avez utilisé pour le générer. Si vous souhaitez installer le certificat client sur un autre ordinateur client, vous devez tout d’abord exporter le certificat client.

  1. Pour exporter un certificat client, ouvrez Gérer les certificats utilisateur. Les certificats clients que vous avez générés se trouvent par défaut dans « 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.

    Capture d’écran montrant la fenêtre Certificats avec Toutes les tâches, puis Exporter sélectionnés.

  2. Dans l’Assistant Exportation de certificat, cliquez sur Suivant pour continuer.

  3. Sélectionnez Oui, exporter la clé privée, puis cliquez sur Suivant.

    Capture d’écran montrant l’option Oui, exporter la clé privée sélectionnée.

  4. Dans la page Format de fichier d’exportation, laissez les valeurs par défaut sélectionnées. Assurez-vous que l’option Inclure tous les certificats dans le chemin d’accès de certification si possible est sélectionnée. Ce paramètre exporte également les informations de certificat racine qui sont nécessaires à la réussite de l’authentification du client. Sans cela, l’authentification du client échoue car le client n’a pas le certificat racine approuvé. Cliquez ensuite sur Suivant.

    Capture d’écran de la page du format de fichier d’exportation.

  5. Dans la page Sécurité , vous devez protéger la clé privée. Si vous choisissez d’utiliser un mot de passe, veillez à enregistrer ou à mémoriser celui que vous définissez pour ce certificat. Cliquez ensuite sur Suivant.

    Capture d’écran montrant le mot de passe entré et confirmé.

  6. Dans Fichier à exporter, cliquez sur Parcourir pour accéder à l’emplacement vers lequel vous souhaitez exporter le certificat. Pour la zone Nom de fichier, nommez le fichier de certificat. Cliquez ensuite sur Suivant.

  7. Cliquez sur Terminer pour exporter le certificat.

Installer un certificat client exporté

Chaque client qui se connecte via une connexion P2S a besoin d’un certificat client installé localement. Pour installer un certificat client, consultez Installer un certificat client pour des connexions point à site.

Étapes suivantes

Poursuivez votre configuration point à site.