Let’s Encrypt(https://letsencrypt.org )是可以签发免费SSL/TLS证书的CA机构,它是为普及HTTPS而发起的,推动了基础DV SSL
证书的普及。其证书已经被Mozilla
、Google
、Microsoft
和Apple
等主流浏览器支持,只需要web服务器配置好HTTPS证书,浏览器会在加载时验证web服务器HTTPS证书是否有效。
使用Let’s Encrypt一个很重要的理由是免费,避免ISP劫持;还有申请速度快、无需注册账户等优点。在对比了众多免费CA后,Let’s Encrypt是比较方便和理想的,它提供了基础DV SSL证书,只提供了数据加密;不验证身份,无法向用户证明网站的所有者
。但即使这样也满足了基本需要了。
不推荐使用沃通 (WoSign)证书。
PS:
目前主流的SSL证书主要分为DV SSL、OV SSL、EV SSL。
DV SSL
最简易,只提供数据加密功能,不验证身份。目前免费SSL证书都是这个类型。
OV SSL
提供加密功能,会验证身份,可信度更高。收费。
EV SSL
安全级别、可信度最高的SSL证书,用于金融证券、银行、网上支付网站,强调网站安全和企业形象。收费最贵。
Let’s Encrypt工具有很多,不同的平台使用不同的工具和方法。windows平台推荐使用letsencrypt-win-simple(https://github.com/Lone-Coder/letsencrypt-win-simple/releases )申请证书,简单快速。
下面是实践中,windows server使用letsencrypt-win-simple客户端部署HTTPS。部署中碰到的问题和解决方案放在了文章末尾。
1.准备工作
1.1 设置DNS
在DNS服务器设置正确的域名(二级域名、三级域名都可以)
1.2 下载运行letsencrypt-win-simple:
下载最新版本letsencrypt-win-simple(https://github.com/Lone-Coder/letsencrypt-win-simple/releases )
在服务器上解压letsencrypt-win-simple,解压后文件结构如下:
1.3 letsencrypt-win-simple运行环境
双击letsencrypt.exe,运行需要.NET运行环境,点击安装就可以了:
2.IIS部署HTTPS站点
2.1 自动化认证单个域名
在服务器上,终端cd到letsencrypt.exe
文件夹,键入如下命令:
letsencrypt.exe —accepttos —manualhost pre.YourDomain.com —webroot D:\ssl.api.MyHost.com
使用webroot
方式申请证书
Let’s Encrypt服务器会访问命令中的服务器路径,用于验证这个网站是否属于你,成功后会生成临时的认证文件。
出现如下文字说明成功了:
会将公钥和私钥放在C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple下,这个路径会在Nginx部署时用到。
这个过程中,如果验证不通过,是因为IIS需要修改配置,具体见附录-问题一。
2.2 部署HTTPS站点:
在Windows Server上增加站点:
3.附录:
3.1 出现的问题一:
出现这个错误表示生成的这个临时文件访问不到,验证不通过。
原因是因为.well-know
这个文件夹带了前缀 . ,IIS会认为是不可识别的 MIMEType
,只需要在网站根目录下临时加上 MIMEType
配置即可:
IIS上新增MIME Type方法:
3.2 出现的问题二:
这是域名问题,域名输错或者设置错误,需要重新检查输入的命令。