Windows IIS 10如何配置自签名SSL并实现自动跳转

暗香疏影 创作者

配置自签名难度不大,但是有一些坑路,所以在这里记录一下。

1. 配置自签名的坑路

配置自签名,这里就不进行详细说明了。网上有大量的链接:

  1. Microsoft
  2. 教程2
  3. Sophos

在配置好443端口的时候,服务器可能会无法再次启动,原因搜索了一下,说是443端口被占用。其实解决方法是直接重启即可。

2. HTTP跳转HTTPS

使用中文搜索,得到的是很多年前的教程,实际上都不适用于IIS 10。
正确的做法是下载插件。

2.1 下载并安装URL Rewrite插件

下载地址: https://www.iis.net/downloads/microsoft/url-rewrite
等待下载并安装好之后,需要退出一下IIS。因为这个时候IIS Manager里面URL Rewrite还没显示出来。
我们需要设置Web Config去修改。

2.2 设置Web Config

在你网站的根目录,有一个web.config的文件,把代码嵌入:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to HTTPS" enabled="false" stopProcessing="true">
<match url="(.*)" />
<conditions><add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

由于我本来里面已经有配置,所以修改了一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".pkg" mimeType="application/macos" />
<mimeMap fileExtension=".ipa" mimeType="application/ipad" />
</staticContent>
<directoryBrowse enabled="true" />
<rewrite>
<rules>
<rule name="Redirect to HTTPS" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

如你所见,我之前通过MIME Types添加了pkg和ipa文件,这样用户访问就会直接下载,而不会是报错。
现在我又添加了HTTPS自动跳转。

2.3 IIS Manager查看效果

URL Rewrite
现在,你只需要进入URL Rewrite并点击“Redirect to HTTPS”然后Enable Rule即可。

2.4 注意IIS早期版本教程导致坑路

记得在SSL Setting里面,不要勾选Require SSL!
否则会返回403.4错误。
SSL Setting - Not Require

参考文献

参考文献1. Namecheap

参考文献2. Grid Scale

  • 标题: Windows IIS 10如何配置自签名SSL并实现自动跳转
  • 作者: 暗香疏影
  • 创建于 : 2020-05-06 00:00:00
  • 更新于 : 2020-05-06 00:00:00
  • 链接: https://blog.23ikr.com/2020/05/06/2020-05-06-IIS-SSL-Setting/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论