Generare ed esportare certificati per la connessione da punto a sito tramite PowerShell
Le connessioni da punto a sito usano certificati per l'autenticazione. 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 cmdlet di PowerShell usati per generare 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" che viene 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 un certificato client deve essere 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 non riesce.
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 di PowerShell è ancora aperta
Usare questo esempio se la console di PowerShell non è stata chiusa dopo aver creato il certificato radice autofirmato. Questo esempio continua dalla sezione precedente e usa la variabile dichiarata "$cert". Se la console di PowerShell è stata chiusa dopo aver creato il certificato radice autofirmato o si creano certificati client aggiuntivi in una nuova sessione della console di PowerShell, seguire la procedura descritta 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 - 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 file cer del certificato radice (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 file cer del certificato, aprire Gestisci certificati utente.
Individuare il certificato radice autofirmato, in genere in "Certificati - Utente corrente\Personale\Certificati" e fare clic con il pulsante destro del mouse. Fare clic su Tutte le attività ->Esporta. Si avvia la procedura di Esportazione guidata certificati.
Se non è possibile trovare il certificato in "Utente corrente\Personale\Certificati", è possibile che sia stato aperto accidentalmente "Certificati - Computer locale", anziché "Certificati - Utente corrente".
Nella procedura guidata fare clic su Avanti.
Selezionare No, non esportare la chiave privata e quindi fare clic su Avanti.
Nella pagina Formato file di esportazione selezionare Codificato Base 64 X.509 (.CER) e quindi fare clic su 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 fare clic su Next.
Fare clic su Fine per esportare il certificato.
Verrà visualizzata una conferma che indica che l'esportazione è riuscita.
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 file X.509 con codifica Base 64 (). Formato CER, verrà visualizzato testo 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 la X.509 con codifica Base 64(. Formato CER. Inoltre, se si usa un editor di testo diverso dal Blocco note, è possibile che alcuni editor possano introdurre una formattazione imprevista 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à e quindi fare clic su Esporta per aprire l'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 P2S 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 classici del modello di distribuzione, vedere Configurare una connessione VPN da punto a sito a una rete virtuale (classica).