IIS上部署免费SSL证书之--Let's Encrypt
1.简介[*]由 ISRG(Internet Security Research Group,互联网安全研究小组)提供服务,而 ISRG 是来自于美国加利福尼亚州的一个公益组织。Let's Encrypt 得到了 Mozilla、Cisco、Akamai、Electronic Frontier Foundation 和 Chrome 等众多公司和机构的支持,发展十分迅猛。
[*]极速申请 - 只要认证的网站通过验证,当时即可颁发证书
[*]免费和访问速度兼得
[*]对于域名所有权的验证,支持两种方式:放临时文件进行验证、查询 whois 给域名所有人发邮件验证
[*]无需注册账户
[*]关键是稳定,背后的支持的组织很强大
缺点:
[*]一次只能颁发3个月有效期的证书,到期之后需要自己再续上 (仍然是免费的),这点维护起来比较麻烦,不过我们可以使用工具自动续期。
[*]不支持通配符泛域名 (*.demo.com),所以在申请认证是时候,要把域名都 301 跳转到证书里包含的域名上,不然浏览器会弹证书错误。
2.安装
2.1下载 letsencrypt-win-simple,解压:
2.2打开cmd进入解压的目录C:\letsencrypt-win-simple.v1.9.0
2.3配置web.config,因为验证的时候会生成 .well-know 这个文件夹带了前缀.,IIS会认为是不可识别的 MIMEType ,只需要在网站根目录下临时加上 mimeMap 配置即可。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension="." mimeType="text/plain" />
</staticContent>
</system.webServer>
</configuration>
2.3部署单个域名输入命令:
letsencrypt.exe --accepttos --manualhost 你的域名 --webroot 你的网站物理路径(wwwroot路径)
例:letsencrypt.exe --accepttos --manualhost abc.com --webroot D:\WebSite\web
然后会在网站根目录生成.well-known文件夹,Let's Encrypt 服务器会访问里面这个文件, 用于验证这个网站是否属于你。
输入:y,继续
问你是否指定任务将运行的用户,这里输入:n
2.4 IIS配置,点击绑定--添加--选择类型https--选择对应的ssh证书:
3.配置web.config 自动跳转到 HTTPS
3.1 安装IIS UrlRewrite ,这里就不多说了,一路next到结束。
3.2 web.config具体配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HostNameRule1">
<match url="(.*)" />
<!--匹配所有条件-->
<conditions logicalGrouping="MatchAny">
<!--当不是使用https协议访问的时候-->
<add input="{HTTPS}" pattern="^OFF$" />
<!--并且访问的host不是abc.com这种,例如www.abc.com-->
<add input="{HTTP_HOST}" pattern="^abc\.com$" negate="true" />
</conditions>
<!--跳转到https-->
<action type="Redirect" url="https://abc.com/{R:1}" />
</rule>
<rule name="HTTPS redirect">
<match url="(.*)" />
<conditions>
<!--当使用HTTPS协议访问-->
<add input="{HTTPS}" pattern="^ON$" />
<!--当访问 https://www.abc.com的时候 -->
<add input="{HTTP_HOST}" pattern="^abc\.com$" negate="true" />
</conditions>
<!--跳转到HTTPS-->
<action type="Redirect" url="https://abc.com/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
其他配置方案可参考:http://www.cnblogs.com/silin6/p/5931640.html
页:
[1]