IIS 服务器安装证书,并设置HTTP 自动跳转 HTTPS
IIS 服务器安装证书,并设置HTTP 自动跳转 HTTPS
SSL 证书 -> 操作指南 -> 证书安装指引 -> IIS 服务器安装证书
·
操作场景/需求场景
使用场景:首先是我们的需求,比如我们的网站启用了SSL全站加密,但是浏览器默认进入的地址是:http://www.AAA.com (不带s的网址)。那就需要将http://www.AAA.com自动跳转到 https://www.AAA.com 的入口中去,不然还是会有没加密的路径还可以访问的问题发生。
本文档指导您如何在 IIS 中安装 SSL 证书。
说明:
- 本文档以证书名称
www.domain.com
为例(可以换成您的网址)- 本文档以操作系统 Windows10 为例。由于操作系统的版本不同,详细操作步骤略有区别。
操作步骤
一、证书安装
- 已在 SSL 证书管理控制台 中下载并解压缩
www.domain.com
证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。其中包含 IIS 文件夹和 CSR 文件:- 文件夹名称:IIS
- 文件夹内容:
www.domain.com.pfx
证书文件keystorePass.txt
密码文件(若已设置私钥密码,则无keystorePass.txt
密码文件)
- CSR 文件内容:
www.domain.com.csr
文件说明:CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。
- 打开 IIS 服务管理器,选择计算机名称,双击打开 “服务器证书”。如下图所示:
- 在服务器证书窗口的右侧 “操作” 栏中,单击【导入】。如下图所示:
- 在弹出的 “导入证书” 窗口中,选择证书文件存放路径,输入密码,单击【确定】。如下图所示:
说明:
申请证书时若设置了私钥密码,输入密码时,请输入私钥密码。若申请证书时未设置私钥密码,输入密码时,请输入 IIS 文件夹中 keystorePass.txt 文件的密码。具体操作请参考 腾讯云的 私钥密码指引。
- 选择网站下的站点名称,并单击右侧 “操作” 栏的【绑定】。如下图所示:
- 在弹出的 “网站绑定” 窗口中,单击【添加】。如下图所示:
- 在 “添加网站绑定” 的窗口中,将网站类型设置为 https,端口设置为443,并指定对应的 SSL 证书,单击【确定】。如下图所示:
- 添加完成后,即可在 “网站绑定” 窗口中查看到新添加的内容。如下图所示:
二、HTTP 自动跳转 HTTPS 的安全配置(关键)
执行下列步骤前请下载安装 rewrite 模块。
IIS的URL重写模块(URL Rewrite)的官方下载地址:https://www.iis.net/downloads/microsoft/url-rewrite
注意:如果安装后发现IIS默认网站的右侧IIS下没有【URL 重写】(一般是在 SSL设置(锁图标)的旁边),则可能需要重启电脑或服务器。
说明:
- 正常跳转可按照下列编辑规则。若您有其他需求可以自己设置。
- HTTP 跳转 HTTPS 过程中,如果您的网站元素中存在外部链接或者使用的 HTTP 协议,导致整个页面不完全是 HTTPS 协议。部分浏览器会因为这些因素报不安全的提示,例如链接不安全。您可以单击不安全页面中的 “详细信息” 查看报错原因。
方式A: 在IIS服务管理器里直接做URL重写
1. 打开 IIS 服务管理器。
2. 选择网站下的站点名称,双击打开 “URL 重写”。如下图所示:
进入 “URL 重写” 页面,并单击右侧 “操作” 栏的【添加规则】。如下图所示:
4. 在弹出的 “添加规则”窗口中,选择【空白规则】,单击【确定】。如下图所示:
5. 进入 “编辑入站规则” 页面。如下图所示:
填写说明:
◈名称: 强制 HTTPS
名称可以根据自己的喜好修改,比如 “HTTP to HTTPS redirect” 或 “Redirect To HTTPS”
◈匹配URL:在 “模式” 中手动输入 (.*)
(其它全部默认)
。
◈条件:展开 ,单击添加,弹出 “添加条件” 窗口。
▶条件输入:{HTTPS}
▶检查输入字符串是否:默认选择 与模式匹配 。
▶模式:手动输入^OFF$ 或OFF (默认勾选忽略大小写)
。
◈操作:填写以下参数。
▶操作类型:选择 重定向。
▶重定向 URL:https://{HTTP_HOST}/{R:1}
(默认勾选 附加查询字符串(Q) )
▶重定向类型:选择 参阅其他(303) 或 永久(301) 。
6. 单击最右侧 "操作" 栏的【应用】,保存。
7. 返回网站首页,单击右侧 “管理网站” 栏的【重新启动】。即可使用 http://www.domain.com
进行访问HTTPS了。
完成。
补充说明:条件中的逻辑分组处理
首先参考上图中的逻辑分组信息。
输入 | 类型 | 模式 | 是否 忽略大小写 | 备注 |
---|---|---|---|---|
{HTTPS} | 与模式匹配 | ^OFF$ | YES | 此项用来匹配你的请求是HTTPS还是HTTP |
{HTTPS_HOST} | 与模式不匹配 | ^(localhost) | YES | 可选:如果你是本地的localhost 不会重定向到SSL |
这个也是网上一堆复制粘贴不写清楚的地方。
方式B: 使用配置文件快速部署
标准的http自动跳转到https的web.config 文件,配置文件如下:

<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="HTTP to HTTPS redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules> <outboundRules> <rule name="Add Strict-Transport-Security when HTTPS" enabled="true"> <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" /> <conditions> <add input="{HTTPS}" pattern="on" ignoreCase="true" /> </conditions> <action type="Rewrite" value="max-age=31536000" /> </rule> </outboundRules> </rewrite> </system.webServer> </configuration>
方式C: 下载标准的配置文件web.config放在主页同级文件夹里
标准的http自动跳转到https的web.config 文件:
https://lanzoui.com/i0ltR26rlwyd
注意:如果有特殊配置,请在配置文件里进行对应调整。
···