下面是在win2008 r2 英文版 IIS7.5上配置Https,SSL的方法的完整攻略。
Step 1: 安装 SSL 证书
在配置 HTTPS,SSL 之前,首先需要在服务器上安装一个有效的 SSL 证书,以便协议的通信加密。获取 SSL 证书可以通过购买或申请免费证书两种方式获得。如果是购买 SSL 证书,可以到像 DigiCert 等商家购买。
如果使用免费证书,可以到 Let's Encrypt 官网申请。在申请完成后,到根域名 的目录 /Product 分类中下载一个 .zip 包。
下载完毕后,解压该 .zip 文件并保存在服务器上。
Step 2: 在 IIS 中设置 Https
首先,需要在 IIS 中进行 HTTPS 配置的设置。在 IIS 管理控制面板上,右键单击应用程序池以创建新站点。
接下来,按照以下方式设置站点的 HTTPS 配置:
- 在服务器架构的根目录下,选择 「服务器证书」。
- 点击「创建证书请求」,按照给出的指示输入有关此服务器证书的信息,在最后一个字段中输入要与此证书关联的站点。
- 将证书请求文件发送至证书颁发机构(CA)。
- 在接收到证书后,右键单击服务器证书并选择「导入证书」。
- 将证书从保存的文件夹复制到服务器证书中的相应目录。
- 在 IIS 中打开「网站」,选中要启用 HTTPS 的网站,右键单击并选择「编辑绑定」。
- 在绑定对话框中,单击「添加」按钮,并选择类型为 「https」。
- 选择颁发证书时输入的主机名和端口。
- 转到证书列表,选择要使用的证书并单击「确定」。
Step 3: 激活 Https
- 创建一个 URL 重定向设置,支持 HTTP 请求的重定向到 HTTPS 上。首先选择已创建的站点,右键单击并选择「对象浏览器」。
- 从库中选择默认 Web 应用程序,然后在“如何处理请求 URLs”中添加以下规则:
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
- 完成后,重启 IIS 管理控制台,查看 HTTPS 是否生效。
上述过程除了第一步中安装证书的方式外,还可以通过 PowerShell 来完成。例如,我们可以使用 PowerShell 命令添加站点、绑定证书并激活 HTTPS:
New-Item IIS:\Sites\{siteName} -Bindings @{protocol="https";bindingInformation="*:443:"}
New-Item -Path IIS:\SslBindings\0.0.0.0!443 -Thumbprint {thumbprintValue} -CertStoreLocation "Cert:\LocalMachine\My"
以上便是在win2008 r2 英文版 IIS7.5上配置 HTTPS,SSL 的方法的完整攻略。
示例 1
假设我们已经申请好了免费的 SSL 证书,下载到本地之后可以将其解压到 C:\SSLCertificates
目录下。
在 IIS 管理控制面板上,右键单击应用程序池以创建新站点:
- 在「左侧窗格」选择「Sites(网站)」。
- 在「中心窗格」中,点击突出显示的「Add Website(添加网站)」。
- 在弹出框中输入必要的信息,包括该站点的名称、站点物理路径,和要绑定的端口号,如果是 HTTPS ,则勾选「Require SSL(要求 SSL)」。
- 点击「域名」,添加绑定到该站点的域名和
SSL
证书。 - 点击「确定」,创建新站点。
示例 2
如果想通过 PowerShell 脚本添加站点、绑定证书并激活 HTTPS 的话,可以执行以下命令:
# Create the website
New-Website -Name {websiteName} -Port {portNumber} -IPAddress * -HostHeader {hostname} -PhysicalPath {physicalPath}
# Add the HTTPS binding and assign the certificate
New-WebBinding -Name {websiteName} -Port {portNumber} -Protocol https
$thumbprint = (Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -eq "{certSubject}"}).Thumbprint
$binding = Get-WebBinding -Name {websiteName} -Port {portNumber} -Protocol https
$binding.AddSslCertificate($thumbprint, "My")
# Require SSL for the site
Set-WebConfigurationProperty -Filter /system.webServer/security/access -Name sslFlags -Value Ssl, SslNegotiateCert -PSPath "IIS:\"
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在win2008 r2 英文版 IIS7.5上配置Https,SSL的方法 - Python技术站