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,解压后文件结构如下:
letsencrypt-win-simple.V1.9.1 文件结构
1.3 letsencrypt-win-simple 运行环境
双击 letsencrypt.exe,运行需要 .NET 运行环境,点击安装就可以了:
安装
2.IIS 部署 HTTPS 站点
2.1 自动化认证单个域名
在服务器上,终端 cd 到 letsencrypt.exe 文件夹,键入如下命令:
代码语言:javascript复制letsencrypt.exe —accepttos —manualhost pre.YourDomain.com —webroot D:ssl.api.MyHost.com
使用 webroot 方式申请证书 Let’s Encrypt 服务器会访问命令中的服务器路径,用于验证这个网站是否属于你,成功后会生成临时的认证文件。
出现如下文字说明成功了:
申请成功
会将公钥和私钥放在 C:UsersAdministratorAppDataRoamingletsencrypt-win-simple 下,这个路径会在 Nginx 部署时用到。
这个过程中,如果验证不通过,是因为IIS需要修改配置,具体见附录-问题一。
2.2 部署 HTTPS 站点:
在 Windows Server 上增加站点:
添加网站
3.附录:
3.1 出现的问题一:
问题1
出现这个错误表示生成的这个临时文件访问不到,验证不通过。 原因是因为 .well-know 这个文件夹带了前缀 . ,IIS 会认为是不可识别的 MIMEType ,只需要在网站根目录下临时加上 MIMEType 配置即可:
IIS 上新增 MIME Type方法:
MIME Type
3.2 出现的问题二:
问题2
这是域名问题,域名输错或者设置错误,需要重新检查输入的命令。