三个工单里,我一共提了12个问题,在西部数码这是收费的,不管你有没有买服务,金牌服务也要收100块钱。一直提交免费工单我也不好意思,但是自己不搞明白,以后部署ssl还付费吗?就这样,我在西部数码技术客服一点一点提示下,完成了单站点和多站点部署ssl,西部数码之所以收费,就是因为这个相对技术含量高,他们可以借此赚取服务费,可想而知部署ssl并不是一件容易的事。
废话不多说开始:
(1)、导入证书与站点绑定
从证书购买处下载证书,例如
单站点部署其实就是直接在IIS上部署,所以下载PKCS12格式的证书,下载下来的证书文件后缀是pfx。
打开IIS管理器(桌面上一般有快捷方式,没有不知道从哪打开的百度一下)→点击计算机名称→双击服务器证书
点击右侧的导入
选择你的.pfx文件,密码填写你申请证书时设置的密码,完事点确定,可以看到服务器证书列表里面有你的证书了。
接下来在左侧点网站,在你的网站列表上点一下,在右边点绑定,点添加
类型选https,ssl证书选你的证书,其它的如ip地址分配、主机名都不用操作,然后点确定,点关闭。此时右侧浏览网站里面会出现
到此导入证书与站点绑定完成。
(2)、放行443端口
证书导入完成与站点绑定成功后,用https访问试一下,如果打不开,用工具测试一下443端口是不是通着,如果不通,接下来要做的就是放行443端口了。
步骤:开始→控制面板→windows防火墙→高级设置→入站规则→新建规则→选端口→下一步→输入443端口→下一步→下一步→名称最好写你打开的端口的名称,方便寻找→点完成,这时入站规则列表里已有443端口了
再次访问https链接发现可以打开网页了,但是访问http并不会跳转到https,这就是接下来要做的跳转。
(3)、访问http跳转到https
新建一个web.config文件(用记事本建改一下后缀就行了),里面放下面这些代码
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <system.webServer>
- <rewrite>
- <rules>
- <rule name="301" stopProcessing="true">
- <match url="^(.*)$" ignoreCase="false" />
- <conditions logicalGrouping="MatchAll">
- <add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" />
- <!-- <add input="{HTTPS}" pattern="^on$" negate="true" /> --> # 非亚数机房用这一行替换上一行规则
- </conditions>
- <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" /> # www.abc.com对应修改为您自已的域名
- </rule>
- </rules>
- </rewrite>
- </system.webServer>
- </configuration>
如果是国内的机房需要把<add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" />替换为<add input="{HTTPS}" pattern="^on$" negate="true" />
再测试跳转正常。
(1)安装nginx+iis7反向代理环境和证书
由于IIS7不支持多站点部署https,可以使用nginx+iis7反向代理的方式来实现。
首先要保证站点已经建立并绑定域名可以正常访问。
下载脚本win-ssl.bat,具体操作请访问https://www.west.cn/faq/list.asp?unid=1450,在我截图的部分下载脚本
注意:这个链接一定要复制到服务器里面的浏览器里打开下载相关内容,不然下载的文件会被浏览器或360网站卫士误判为不安全软件,这样复制到服务器可能就不完整了。如果服务器里的浏览器提示危险文件,允许运行就行了。如果提示下载wget.exe失败请手动下载,则去https://eternallybored.org/misc/wget/下载并放置指定目录。 2019年6月1日补充:目前西数链接的win-ssl.bat已更新至最新版v1.9,如不提示下载wget.exe,则不下载wget.exe。
下载之后运行会出现如下窗口:
输入1回车安装环境,完成后输入3回车会提示输入域名,先不要输入域名,下载证书,注意此时要下载PEM格式的
下载下来解压后文件夹里有三个文件,.cer、.key和.crt格式的,把这三个文件放到网站根目录(是根目录不是二级目录)
此时再输入域名,回车,需要等待5~6秒时间,安装完成后会有提示。
此处大家需要注意个问题:一个站点部署完成后,如果关闭了窗口,再部署另一个站点,运行win-ssl.bat程序后不要再输入1回车,这样会重复安装iis+nginx反向代理环境,直接输入3回车就行了,继续部署其它站点的ssl。
(2)http到https的301跳转
新建一个web.config文件,里面如下内容
放置到网站根目录,测试输入http链接跳转到https链接成功。请严格按本教程操作,不要受其它教程干扰。
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <system.webServer>
- <rewrite>
- <rules>
- <rule name="301" stopProcessing="true">
- <match url="^(.*)$" ignoreCase="false" />
- <conditions logicalGrouping="MatchAll">
- <add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" />
- </conditions>
- <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" /> #www.abc.com对应修改为您自已的域名
- </rule>
- </rules>
- </rewrite>
- </system.webServer>
- </configuration>