Come assegnare un certificato SSL per IIS7 sito dal prompt dei comandi
-
09-09-2019 - |
Domanda
Potete raccomandare me se è possibile o non assegnare un certificato SSL a un sito web in IIS7 utilizzando l'applicazione APPCMD?
mi è familiare con il comando per impostare i binding HTTPS
appcmd set site /site.name:"A Site" /+bindings.[protocol='https',bindingInformation='*:443:www.mysite.com']
e come ottenere mappature attuali
%windir%\system32\inetsrv\Appcmd
, ma non riesco a trovare un modo per mappare un sito per un certificato (dir hash certificati per esempio)
Soluzione
La risposta è quella di utilizzare NETSH. Ad esempio
netsh http add sslcert ipport=0.0.0.0:443 certhash='baf9926b466e8565217b5e6287c97973dcd54874' appid='{ab3c58f7-8316-42e3-bc6e-771d4ce4b201}'
Altri suggerimenti
Questo mi ha aiutato molto: una semplice guida, da Sukesh Ashok Kumar, alla creazione di SSL per IIS dalla riga di comando. Include l'importazione / generare il certificato con certutil
/ makecert
.
http://www.awesomeideas.net/post/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx
EDIT: se l'URL originale è giù, è ancora disponibile attraverso la Wayback Machine .
Con PowerShell e il modulo WebAdministration, è possibile effettuare le seguenti operazioni per assegnare un certificato SSL a un sito IIS:
# ensure you have the IIS module imported
Import-Module WebAdministration
cd IIS:\SslBindings
Get-Item cert:\LocalMachine\My\7ABF581E134280162AFFFC81E62011787B3B19B5 | New-Item 0.0.0.0!443
Da notare ... il valore, "7ABF581E134280162AFFFC81E62011787B3B19B5" è l'identificazione personale per il certificato che si desidera importare. Quindi ha bisogno di essere importato nell'archivio certificati prima. Il cmdlet New-Item
prende l'indirizzo IP (0.0.0.0 per tutti gli indirizzi IP) e la porta.
:. //learn.iis.net/page.aspx/491/powershell-snap-in-configuring-ssl-with-the-iis-powershell-snap-in/ per maggiori dettagli
Ho provato questo in Windows Server 2008 R2 e Windows Server 2012 pre-release.
@ David e @orip averlo a destra.
Tuttavia, ho voluto ricordare che il ipport parametro specificato nell'esempio (0.0.0.0:443) è quello che il MSDN chiama la "indirizzo non specificato (IPv4: 0.0.0.0 o IPv6: [::])".
Sono andato a guardare in su, così ho pensato di documentare qui per salvare qualcun altro il tempo. Questo articolo si concentra su SQL Server, ma le informazioni sono ancora di attualità:
Utilizzando le risposte da questo post, ho creato un singolo script che ha fatto il trucco per me. Si parte dal file pfx, ma si potrebbe saltare questo passo.
Qui è:
cd C:\Windows\System32\inetsrv
certutil -f -p "pa$$word" -importpfx "C:\temp\mycert.pfx"
REM The thumbprint is gained by installing the certificate, going to cert manager > personal, clicking on it, then getting the Thumbprint.
REM Be careful copying the thumbprint. It can add hidden characters, esp at the front.
REM appid can be any valid guid
netsh http add sslcert ipport=0.0.0.0:443 certhash=5de934dc39cme0234098234098dd111111111115 appid={75B2A5EC-5FD8-4B89-A29F-E5D038D5E289}
REM bind to all ip's with no domain. There are plenty of examples with domain binding on the web
appcmd set site "Default Web Site" /+bindings.[protocol='https',bindingInformation='*:443:']