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.
Da un computer che esegue Windows 10 o versione successiva o Windows Server 2016 aprire una console di Windows PowerShell con privilegi elevati.
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
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:
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"
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
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"
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.
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.
Nella procedura guidata selezionare Avanti.
Selezionare No, non esportare la chiave privata e quindi selezionare Avanti.
Nella pagina Formato file di esportazione selezionare Codificato Base-64 X.509 (.CER) e quindi selezionare Avanti.
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.
Selezionare Fine per esportare il certificato.
Verrà visualizzata una conferma che indica che l'esportazione ha avuto esito positivo.
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.
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.
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.
In Esportazione guidata certificati fare clic su Avanti per continuare.
Selezionare Sì, esporta la chiave privata e quindi fare clic su Avanti.
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.
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.
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.
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.
- Per i passaggi del modello di distribuzione di Resource Manager, vedere Configurare una connessione da punto a sito con l'autenticazione del certificato nativa di Azure.
- Per i passaggi del modello di distribuzione classico, vedere Configurare una connessione VPN da punto a sito a una rete virtuale (classica).