Share via


IIS 8: Migliore gestione dei certificati

L'archivio certificati centrale di IIS 8 consente di semplificare la procedura di utilizzo di più certificati in più server.

Jason Helmick

È rinfrescante quando c'è una soluzione semplice e geniale per un problema complesso. Che è proprio come il nuovo archivio centrale certificato (CCS) in IIS 8 impila in su. Con le versioni precedenti di IIS, si potrebbe installare certificati in una Web farm utilizzando Windows PowerShell Remoting. Questo è un processo utile se stai lavorando con IIS sul server più vecchi. Se sei uno dei fortunati che possono eseguire l'aggiornamento a IIS 8, poi presto vedrete come il processo di lavoro con certificati è un gioco da ragazzi.

Mente il negozio

Il CCS si basa su un concetto veramente semplice. Memorizzare tutti i certificati in una condivisione File di Windows Server, quindi hanno le associazioni di sito Web utilizzare invece i certificati installati localmente. Non solo fa questo ridurre il caos dell'installazione dei certificati su più server, riduce notevolmente il tempo di gestione e sforzo di individuazione dei certificati che stanno per scadere.

Il primo passo è quello di creare una condivisione su un server di file che conterrà il tuo certificato file pfx. È possibile farlo su qualsiasi server di file, indipendentemente dal sistema operativo. Sembra preferibile farlo su un server cluster file per impedire che un singolo punto di errore. Non volete perdere l'accesso a tali certificati.

Se stai lavorando in una Web farm, probabilmente hai già un server cluster file — o File System distribuito (DFS) — per la vostra configurazione condivisa. Questo è un ottimo posto per creare un'altra quota per i certificati. Creare un account utente con autorizzazioni di lettura per la condivisione e voi siete tutti insieme.

CCS funziona utilizzando il nome host del sito Web Associazione per individuare un certificato nell'archivio con lo stesso nome file con estensione pfx. Ad esempio, se ci sono due siti Web con host nomi www.WebBikez.com e www.MyCompany.com, i certificati dovranno essere denominati:

Nota: È necessario assicurarsi che jolly certificati (*.Azienda.com) utilizzare un carattere di sottolineatura per sostituire il carattere jolly (_.MyCompany.com.pfx).

È possibile aggiungere i certificati a questa quota qualsiasi momento che è possibile aggiungere siti Web. Non è necessario installare il certificato sul server Web. Il passo successivo è quello di installare e configurare CCS sul tuo server Web IIS 8 per essere in grado di utilizzare tali certificati.

Installare CCS

Il processo di installazione è semplice. È possibile farlo con gli strumenti di gestione grafica o Windows PowerShell. Qui è il processo di installazione CCS su un server Web locale. L'ultima sezione viene descritto come eseguire queste operazioni sul server Web remoto, tra cui Windows Server 2012 Core.

Prima di continuare, è necessario installare la funzionalità centralizzate di supporto certificato SSL sul server Web. È possibile utilizzare gli strumenti grafici di Server Manager o il cmdlet Install-WindowsFeature in Windows PowerShell:

PS> Install-WindowsFeature Web-CertProvider

Quando hai installato con successo la nuova funzionalità, una nuova icona apparirà nella sezione gestione del Gestione IIS (vedi Figura 1).

The CCS icon in the IIS Manager Management section.

Figura 1 icona il CCS nella sezione Gestione Gestione IIS .

Fare clic sull'icona per aprire un modulo per configurare CCS (vedere Figura 2). Attivare CCS, quindi fornire la condivisione UNC e user account con i privilegi di letti alla condivisione.

You can graphically configure the central certificate store.

Figura 2 è possibile configurare graficamente l'archivio certificati centrale.

Si noti nella parte inferiore del form che è possibile specificare una password della chiave privata se esportato il pfx con uno. In genere, si vuoi esportare i certificati con una password, quindi esso è entrato nell'esempio precedente.

Utilizzando questi strumenti grafici è semplice abbastanza se è necessario abilitare e configurare CCS su un singolo server locale. Se si desidera automatizzare il processo, è inoltre possibile utilizzare Windows PowerShell. Quando si installa CCS in questo modo, ci saranno sei nuovi cmdlet aggiunti:

  • Clear-WebCentralCertProvider
  • Disable-WebCentralCertProvider
  • Enable-WebCentralCertProvider
  • Get-WebCentralCertProvider
  • Set-WebCentralCertProvider
  • Set-WebCentralCertProviderCredential

I cmdlet sono abbastanza auto-esplicativi e file di aiuto. Ecco un esempio utilizzando il cmdlet Enable-WebCentralCertProvider per abilitare e configurare CCS su un server Web locale:

PS> Enable-WebCentralCertProvider -CertStoreLocation \\serverdc\certstore -UserName company\certuser -Password P@ssw0rd -PrivateKeyPassword P@ssw0rd

Creare sito Web associazioni

L'ultimo passo nel processo è di creare, modificare o aggiungere una nuova associazione per il tuo sito Web che utilizza il CCS (vedere Figura 3). Nota vi è ora una nuova opzione per selezionare "Archivio certificati uso centralizzata."

Binding your Web site to the central certificate store is the final step.

Figura 3 sito Web di associazione all'archivio certificati centrale è il passaggio finale.

Ecco un esempio di come utilizzare Windows PowerShell per creare un nuovo sito Web con la corretta associazione di SSL. Il trucco è il parametro –SslFlags del cmdlet New-sito Web. SSLFlags determina dove si trova il certificato che userete per l'associazione. CCS, si desidera opzione due o tre, a seconda se si sta utilizzando Server nome indicazione (SNI). Qui ci sono le opzioni:

  • 0 – Regolare certificato nell'archivio certificati Windows
  • 1 – Certificato SNI
  • 2 – CCS
  • 3 – Certificato SNI nel CCS

Ecco come creare un nuovo pool di applicazioni e un sito Web utilizzando un certificato SNI in CCS:

PS C:\> New-WebAppPool -Name WebBikez_pool PS C:\> New-Website -Name WebBikez -HostHeader www.WebBikez.com -PhysicalPath c:\inetpub\wwwroot -ApplicationPool webbikez_Pool -Ssl -port 443 -SslFlags 3 -force

Fare questo se hai solo bisogno di aggiungere un'associazione a un sito Web esistente:

PS C:\> New-WebBinding -Name "WebBikez" -Protocol https -Port 443 -HostHeader www.WebBikez.com –SslFlags 3

Installare CCS su server Web remoto

È possibile eseguire tutti questi comandi utilizzando Windows PowerShell Remoting. È facile da collegare e installare la funzionalità di CCS a server remoti, compreso Windows Server 2012 Core.

Creare una sessione remota utilizzando il cmdlet New-PSSession:

PS C:\> $Sessions=New-PSSession -ComputerName server2,server3

Installare la funzionalità di CCS su computer remoti:

PS C:\> Invoke-Command -Session $sessions {Install-WindowsFeature Web-CertProvider}

Qui è dove diventa difficile. Il cmdlet Enable-WebCentralCertProvider dispone di un parametro — CertStoreLocation — che accetta una condivisione di rete per la posizione del certificato. Il problema è che il cmdlet tenta di verificare il percorso di condivisione prima di scrive le informazioni nel Registro di sistema.

In Windows PowerShell Remoting, questo causa un problema di autoidentificazione. Sei connesso a un computer remoto che sta tentando di connettersi a un computer remoto. A un certo punto, il team IIS verrà probabilmente Difficoltà il cmdlet. Fino a quando lo fanno, qui è un modo per aggirare il problema. È solo possibile aggiungere manualmente le voci nel Registro di sistema.

Per abilitare il CCS:

Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\IIS\CentralCertProvider\ -Name Enabled -Value 1}

Per impostare il percorso di condivisione dei certificati:

Invoke-Command -Session $sessions {Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\IIS\CentralCertProvider\ -Name CertStoreLocation -Value \\ServerDC\CertStore}

Non è possibile impostare il nome utente e password direttamente al Registro di sistema, ma il cmdlet Set-WebCentralCertProvider si prenderà cura di tutto il resto:

Invoke-Command -Session $sessions {Set-WebCentralCertProvider -Password P@ssw0rd -UserName Company\certuser -PrivateKeyPassword P@ssw0rd}

A questo punto, è possibile aggiungere associazioni di Web per i siti Web per HTTPS utilizzando Windows PowerShell Remoting, e hai finito. Se non avete avuto la possibilità di provare IIS 8, forse imparare come funziona il CCS vi darà un motivo di buoni affari a dare un'occhiata. È solo una delle nuove caratteristiche di IIS 8 che si dovrebbe prendere in considerazione il movimento in avanti.

Jason Helmick

Jason Helmick è il direttore di Windows PowerShell tecnologie per la formazione tecnica di interfaccia, con sede a Phoenix, Arizona Egli è un oratore, autore, insegnante e amministratore IIS involontario.

Contenuti correlati