IIS:在多个Web处事器上打点多个证书 8090安适门户
在大规模的Web环境打点证书是巨大的挑战。可能有上百台处事器拥有上百个SSL Web站点,都使用独一的证书。在这么大规模的配景下,使用IIS打点器的图形界面来安置和维护证书是一个耗时的过程。
不用害怕,有更好的要领。无论你有2个或者200个Web处事器,Windows PowerShell会将数日、数周或数月的时间消耗减少为几分钟。贯穿部署、安置和配置证书和站点的SSL,有要领可以定位到即将过期的证书,以便你可以替换它们。
根基法则很简单:事情在IIS 7.5和IIS 8,但是你需要启用Windows PowerShell长途。例如,有两个Web处事器配置在一个负载均衡里,有它们本身的集群IP地点。每一个运行3个新的需要绑定证书的SSL Web站点。在代码里,我已经改削了集群IP地点为内部地点,而隐藏了实际的Web站点,但你能获得道理。我采办了新证书,并筹备部署.pfx文件。这是站点的提要:
Shop.Company.com – IP Address 192.168.3.201 – Cert: shop.company.com.pfx
Update.Company.com – IP Address 192.168.3.202 – Cert: update.company.com.pfx
Register.Company.com – IP Address 192.168.3.203 – Cert: register.company.com.pfx
让我们开始在负载均衡的Web处事器部署和安置证书。
Part1:部署和安置
你需要开始做两件事 – 界说一个变量,包罗Web处事器计算机名的的列表,另一个变量,到那些处事器上的每一台的Windows PowerShell长途会话。计算机名来自于一个文本文件,但是如果Web处事器是域成员,你可以从勾当目录收集:
PS> $servers = Get-Content c:\webservers.txt
PS> $session = New-PsSession –ComputerName $servers
拷贝证书到长途处事器,以便于你安置它们。不用担忧某人偷走了你的.pfx文件。在这个法式完成前不要删除它们。需要说明的是,我的.pfx文件位于我客户端计算机的c:\sites\certpfx目录下:
PS> $servers | foreach-Object{
copy-item -Path c:\sites\certpfx\*.* -Destination "\\$_\c$"}
CertUtil.exe是通过Windows PowerShell长途会话安置证书的伟大工具。在以下每一行,每个Web处事器将会安置证书。记住,有3个证书被安置(每个站点1个),所以我反复了这个命令:
PS> Invoke-command -Session $session {
certutil -p P@ssw0rd -importpfx c:\shop.company.com.pfx}
PS> Invoke-command -Session $session {
certutil -p P@ssw0rd -importpfx c:\update.company.com.pfx}
PS> Invoke-command -Session $session {
certutil -p P@ssw0rd -importpfx c:\register.company.com.pfx}
当你使用CertUtil.exe,你需要为.pfx指定暗码。因为我在实践中执行,只需要输入暗码。如果你创建一个脚本,我保举将暗码替换为从提示获取暗码的变量,例如:
PS> $Cred = (Get-Credential).password
确保从长途Web处事器删除.pfx文件,以防任何可能的证书掉窃:
PS> $servers | foreach-object {Remove-Item -Path "\\$_\c$\*.pfx"}
跟着在长途处事器上安置了证书,接下来为Web站点创建HTTPS绑定。
Part2:创建Web站点绑定
在负载均衡的每个处事器上的每个Web站点需要绑定HTTPS。使用WebAdministration模块的New-WebBinding,该成果将会成为一个打点单元。参数指定了站点名,协议,端口和站点的集群IP地点。SslFlags决定了用户绑定的证书的位置。
PS> Invoke-Command -session $session {Import-Module WebAdministration}
PS> Invoke-command -Session $session {
New-WebBinding -name shop -Protocol https -Port 443 -IPAddress 192.168.3.201 -SslFlags 0}
PS> Invoke-command -Session $session {
New-WebBinding -name update -Protocol https -Port 443 -IPAddress 192.168.3.202 -SslFlags 0}
PS> Invoke-command -Session $session {
New-WebBinding -name register -Protocol https -Port 443 -IPAddress 192.168.3.203 -SslFlags 0}
你刚安置的证书位于Windows证书存储中,选项有这些:
0 – 在Windows证书存储中的一般证书
1 – Server Name Indication (SNI)证书
2 – 中央证书存储
3 – 在中央证书存储中的SNI证书
还有最后一步要完成,每每容易忘记:连接证书到新的Web站点绑定。
Part3:绑定证书
最后一步令人迷惑。图形IIS打点器隐藏了这一步的措置惩罚惩罚,如果你想站点使用SSL正常事情,你必须得做。你需要连接证书到Web站点的绑定。
这是一个两阶段过程。首先,你得获得每个Web站点的证书的指纹,因此你可以创建一个合适的SSL绑定。记住,这个例子里我们有3个站点。我需要每个独一证书的指纹。我选择存储指纹到3个差此外变量,因此,当我连接到Web站点时不会混淆:
PS> Invoke-Command -session $session {
$CertShop=Get-ChildItem -Path Cert:\LocalMachine\My |
where-Object {$_.subject -like "*shop*"} |
Select-Object -ExpandProperty Thumbprint}
温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/12803.html