Condividi tramite


Generare ed esportare certificati per connessioni da punto a sito tramite PowerShell

Questo articolo illustra come creare un certificato radice autofirmato e generare certificati client usando PowerShell in Windows 10 o versione successiva o Windows Server 2016 o versione successiva. I passaggi in questo articolo consentono di creare file .pfx e .cer. Se non si ha un computer Windows, è possibile usare una piccola macchina virtuale Windows come soluzione alternativa.

I cmdlet di PowerShell usati per generare i certificati fanno parte del sistema operativo e non funzionano in altre versioni di Windows. Il sistema operativo host viene usato solo per generare i certificati. Dopo aver generato i certificati, è possibile caricarli o installarli in qualsiasi sistema operativo client supportato.

Se non si dispone di un computer che soddisfa i requisiti del sistema operativo, è possibile usare MakeCert per generare i certificati. I certificati generati con uno dei due metodi possono essere installati in qualsiasi sistema operativo client supportato.

Creare un certificato radice autofirmato

Usare il cmdlet New-SelfSignedCertificate per creare un certificato radice autofirmato. Per altre informazioni sui parametri, vedere New-SelfSignedCertificate.

  1. Da un computer che esegue Windows 10 o versione successiva o Windows Server 2016 aprire una console di Windows PowerShell con privilegi elevati.

  2. Creare un certificato radice autofirmato. Nell'esempio seguente viene creato un certificato radice autofirmato denominato 'P2SRootCert' installato automaticamente in 'Certificates-Current User\Personal\Certificates'. È possibile visualizzare il certificato aprendo certmgr.msc o Gestire i certificati utente.

    Apportare le modifiche necessarie prima di usare questo esempio. Il parametro 'NotAfter' è facoltativo. Per impostazione predefinita, senza questo parametro, il certificato scade in 1 anno.

    $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. Lasciare aperta la console di PowerShell e procedere con i passaggi successivi per generare un certificato client.

Generare un certificato client

Ogni computer client che si connette a una rete virtuale usando la soluzione da punto a sito deve avere un certificato client installato. È possibile generare un certificato client da un certificato radice autofirmato, quindi esportare e installare il certificato client. Se il certificato client non è installato, l'autenticazione ha esito negativo.

I passaggi seguenti illustrano come generare un certificato client da un certificato radice autofirmato. È possibile generare più certificati client dallo stesso certificato radice. Quando si generano certificati client con la procedura seguente, il certificato client viene installato automaticamente nel computer che è stato usato per generare il certificato. Se si vuole installare un certificato client in un altro computer client, esportare il certificato.

Negli esempi viene usato il cmdlet New-SelfSignedCertificate per generare un certificato client.

Esempio 1 - La sessione della console PowerShell è ancora aperta

Usare questo esempio se non è stata chiusa la console PowerShell dopo aver creato il certificato radice autofirmato. Questo esempio continua dalla sezione precedente e usa la variabile dichiarata "$cert". Se è stata chiusa la console di PowerShell dopo aver creato il certificato radice autofirmato o si stanno creando i certificati client aggiuntivi in una nuova sessione della console di PowerShell, attenersi alla procedura nell'esempio 2.

Modificare ed eseguire l'esempio per generare un certificato client. Se si esegue l'esempio seguente senza modificarlo, il risultato è un certificato client denominato "P2SChildCert". Se si desidera assegnare un nome diverso al certificato figlio, modificare il valore CN. Non modificare TextExtension durante l'esecuzione di questo esempio. Il certificato client generato viene installato automaticamente in "Certificati-Utente corrente\Personale\Certificati" nel computer in uso.


   $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

Esempio 2 - La nuova sessione della console di PowerShell

Se si creano certificati client aggiuntivi o non si usa la stessa sessione di PowerShell usata per creare il certificato radice autofirmato, seguire questa procedura:

  1. Identificare il certificato radice autofirmato che viene installato nel computer. Questo cmdlet restituisce un elenco dei certificati installati nel computer in uso.

    Get-ChildItem -Path "Cert:\CurrentUser\My"
    
  2. Individuare il nome dell'oggetto nell'elenco restituito e quindi copiare in un file di testo l'identificazione personale che si trova accanto a esso. Nell'esempio seguente ci sono due certificati. Il nome CN è il nome del certificato radice autofirmato da cui si desidera generare un certificato figlio. In questo caso "P2SRootCert".

    Thumbprint                                Subject
    ----------                                -------
    AED812AD883826FF76B4D1D5A77B3C08EFA79F3F  CN=P2SChildCert4
    7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655  CN=P2SRootCert
    
  3. Dichiarare una variabile per il certificato radice usando l'identificazione personale del passaggio precedente. Sostituire THUMBPRINT con l'identificazione personale del certificato radice autofirmato da cui si desidera generare un certificato figlio.

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

    Ad esempio, usando l'identificazione personale per P2SRootCert nel passaggio precedente, la variabile è simile alla seguente:

    $cert = Get-ChildItem -Path "Cert:\CurrentUser\My\7181AA8C1B4D34EEDB2F3D3BEC5839F3FE52D655"
    
  4. Modificare ed eseguire l'esempio per generare un certificato client. Se si esegue l'esempio seguente senza modificarlo, il risultato è un certificato client denominato "P2SChildCert". Se si desidera assegnare un nome diverso al certificato figlio, modificare il valore CN. Non modificare TextExtension durante l'esecuzione di questo esempio. Il certificato client generato viene installato automaticamente in "Certificati-Utente corrente\Personale\Certificati" nel computer in uso.

    $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
    

Esportare la chiave pubblica del certificato radice (con estensione cer)

Dopo aver creato un certificato radice autofirmato, esportare il certificato radice .cer file (non la chiave privata). In seguito verranno caricati i dati del certificato necessari contenuti nel file in Azure. La procedura seguente consente di esportare il file .cer per il certificato radice autofirmato e recuperare i dati del certificato necessari.

  1. Per ottenere il certificato del file .cer, aprire Gestire i certificati utente.

    Individuare il certificato radice autofirmato, in genere in Certificati - Utente corrente\Personale\Certificati e fare clic con il pulsante destro del mouse. Selezionare Tutte le attività ->Esporta. Si avvia la procedura di Esportazione guidata certificati.

    Se non è possibile trovare il certificato in "Utente corrente\Personale\Certificati", è possibile aver accidentalmente aperto Certificati - Computer locale invece di Certificati - Utente corrente.

    Screenshot che mostra la finestra Certificati con Tutte le attività e quindi Esporta selezionata.

  2. Nella procedura guidata selezionare Avanti.

  3. Selezionare No, non esportare la chiave privata e quindi selezionare Avanti.

    Screenshot che mostra Non esportare la chiave privata.

  4. Nella pagina Formato file di esportazione selezionare Codificato Base-64 X.509 (.CER) e quindi selezionare Avanti.

    Screenshot che mostra l'esportazione con codifica Base-64.

  5. In File da esportare fare clic su Sfoglia e passare alla posizione in cui si vuole esportare il certificato. Per Nome file, assegnare un nome al file del certificato. Quindi seleziona Avanti.

  6. Selezionare Fine per esportare il certificato.

  7. Verrà visualizzata una conferma che indica che l'esportazione ha avuto esito positivo.

  8. Passare al percorso in cui è stato esportato il certificato e aprirlo usando un editor di testo, ad esempio Blocco note. Se il certificato è stato esportato nel formato codificato Base-64 X. 509 (.CER) richiesto, il testo sarà simile all'esempio seguente. La sezione evidenziata in blu contiene le informazioni copiate e caricate in Azure.

    Screenshot che mostra il file CER aperto nel Blocco note con i dati del certificato evidenziati.

    Se il file non è simile all'esempio, in genere significa che non è stato esportato usando il formato codificato Base-64 X. 509 (.CER). Inoltre, se si usa un editor di testo diverso dal Blocco note, si tenga presente che alcuni editor possono introdurre formattazioni indesiderate in background. Ciò può creare problemi quando il testo viene caricato da questo certificato in Azure.

Esportare il certificato radice autofirmato e la chiave privata per archiviarli (facoltativo)

Si consiglia di esportare il certificato radice autofirmato e archiviarlo in un percorso sicuro per avere una copia di backup. Se necessario, in seguito è possibile installarlo su un altro computer e generare altri certificati client. Per esportare il certificato radice autofirmato come file .pfx, selezionare il certificato radice ed eseguire la stessa procedura descritta in Esportazione di un certificato client.

Esportare il certificato client

Quando viene generato un certificato client, viene automaticamente installato nel computer che è stato usato per generarlo. Se si vuole installare il certificato client in un altro computer client, è necessario prima esportare il certificato client.

  1. Per esportare un certificato client, aprire Gestire i certificati utente. Per impostazione predefinita, i certificati client generati si trovano in "Certificati-Utente corrente\Personale\Certificati". Fare clic con il pulsante destro del mouse sul certificato client da esportare, scegliere Tutte le attività, quindi fare clic su Esporta per aprire Esportazione guidata certificati.

    Screenshot che mostra la finestra Certificati con Tutte le attività ed Esporta selezionata.

  2. In Esportazione guidata certificati fare clic su Avanti per continuare.

  3. Selezionare Sì, esporta la chiave privata e quindi fare clic su Avanti.

    Screenshot che mostra Sì esporta la chiave privata selezionata.

  4. Nella pagina Formato file di esportazione lasciare selezionate le impostazioni predefinite. Verificare che l'opzione Se possibile, includi tutti i certificati nel percorso certificazione sia selezionata. Questa opzione consente anche l'esportazione delle informazioni del certificato radice necessarie per la corretta autenticazione del client. Senza tali informazioni, l'autenticazione del client ha esito negativo perché il client non ha il certificato radice attendibile. Quindi fare clic su Next.

    Screenshot per la pagina del formato di file di esportazione.

  5. Nella pagina Sicurezza è necessario proteggere la chiave privata. Se si sceglie di usare una password, assicurarsi di registrare o ricordare quella impostata per questo certificato. Quindi fare clic su Next.

    Screenshot che mostra la password inserita e confermata.

  6. In File da esportare fare clic su Sfoglia e passare alla posizione in cui si vuole esportare il certificato. Per Nome file, assegnare un nome al file del certificato. Quindi fare clic su Next.

  7. Fare clic su Fine per esportare il certificato.

Installare un certificato client esportato

Ogni client che si connette tramite una connessione da punto a sito richiede l'installazione locale di un certificato client. Per installare un certificato client, vedere Installare un certificato client per le connessioni da punto a sito.

Passaggi successivi

Continuare con la configurazione da punto a sito.