Condividi tramite


Snap-in di PowerShell: Configurazione di SSL con lo snap-in powerShell IIS

di IIS Team

Per abilitare SSL tre passaggi sono coinvolti:

  1. Acquisizione e installazione di un certificato
  2. Creazione di un'associazione SSL in IIS
  3. Assegnazione del certificato all'indirizzo IP:Port dell'associazione IIS

e facoltativamente:

  • Applicazione di SSL nel sito Web

Acquisizione e installazione di un certificato

L'acquisizione di certificati è un business difficile. Gli utenti del sito Web devono considerare attendibile il certificato e questo è il motivo per cui è necessario ottenerlo da un'autorità di certificazione attendibile. A scopo di test, è tuttavia possibile creare un certificato personalizzato. Per questa procedura dettagliata verrà usato un certificato autofirmato. Lo strumento che consente di creare un certificato autofirmato è chiamato MAKECERT ed è parte di Visual Studio SDK Tools. Il comando MAKECERT seguente creerà un certificato autofirmato e lo installerà automaticamente nell'archivio certificati di Windows "my":

makecert -r -pe -n "CN=MyTestServer" -b 07/01/2008 -e 07/01/2010 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12

È possibile esaminare i certificati nell'archivio certificati usando il provider di certificati:

PS IIS:\> dir cert:\localmachine\my
    Directory: Microsoft.PowerShell.Security\Certificate::localmachine\my
Thumbprint                                Subject
----------                                -------
7ABF581E134280162AFFFC81E62011787B3B19B5  CN=MyTestServer

Nota

L'identificazione personale del certificato sarà diversa!

Ora consente di usare lo snap-in di PowerShell IIS per creare un'associazione SSL e associarla al certificato appena creato

Creazione di un'associazione SSL

Si aggiunge l'associazione SSL al sito Web predefinito usando uno dei cmdlet basati su attività denominata New-WebBinding:

PS IIS:\> New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https

È possibile esaminare la raccolta di binding usando il comando seguente:

PS IIS:\> Get-WebBinding 'Default Web Site'
protocol                                          bindingInformation
--------                                          ------------------
http                                              *:80:
https                                             *:443:

Assegnazione del certificato all'indirizzo IP:Port dell'associazione IIS

Ora si ottiene un po 'difficile perché le impostazioni SSL vengono archiviate nell'archivio di configurazione HTTP.SYS e le convenzioni di denominazione sono un po 'diverse.

  1. In HTTP.SYS è necessario usare 0.0.0.0.0 per specificare tutti gli indirizzi IP; in IIS si usa un asterisco (*).
  2. In IIS si usa ":" per separare l'associazione. Poiché PowerShell vede invece un punto di unità come indicatore di unità viene usato un contrassegno esclamativo:

È possibile eseguire il CD nella directory IIS:\SslBindings ed eseguire query sulle associazioni SSL esistenti. La directory sarà vuota in un'installazione predefinita di IIS:

PS IIS:\> cd SslBindings
PS IIS:\SslBindings> dir

È ora possibile usare l'hash del certificato ottenuto nel passaggio 1 e associarlo a tutti gli indirizzi IP (0.0.0.0) e alla porta SSL 443:

PS IIS:\SslBindings> get-item cert:\LocalMachine\MY\7ABF581E134280162AFFFC81E62011787B3B19B5 | new-item 0.0.0.0!443

Il comando precedente ha generato l'associazione SSL seguente:

IP Address       Port Store            Sites
----------       ---- -----            -----
0.0.0.0          443  My               Default Web Site

SSL è pronto per passare ora e è possibile passare al sito immettendo https://localhost.

Riepilogo

È abbastanza semplice elaborare per configurare SSL con PowerShell. È necessario ottenere un certificato, creare un'associazione SSL in IIS e quindi usare l'indirizzo IP e la porta dell'associazione IIS per creare un'associazione SSL in HTTP.SYS.