IIS 使用 Let’s Encrypt 证书部署 HTTPS 站点

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.png


letsencrypt-win-simple.V1.9.1 文件结构


1.3 letsencrypt-win-simple 运行环境

双击 letsencrypt.exe,运行需要 .NET 运行环境,点击安装就可以了:


2.png


安装

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 服务器会访问命令中的服务器路径,用于验证这个网站是否属于你,成功后会生成临时的认证文件。

出现如下文字说明成功了:


3.png


申请成功

会将公钥和私钥放在 C:UsersAdministratorAppDataRoamingletsencrypt-win-simple 下,这个路径会在 Nginx 部署时用到。

这个过程中,如果验证不通过,是因为IIS需要修改配置,具体见附录-问题一。

2.2  部署 HTTPS 站点:

在 Windows Server 上增加站点:


4.png


添加网站

3.附录:

3.1 出现的问题一:

5.png


问题1

出现这个错误表示生成的这个临时文件访问不到,验证不通过。
原因是因为 .well-know 这个文件夹带了前缀 . ,IIS 会认为是不可识别的 MIMEType ,只需要在网站根目录下临时加上 MIMEType 配置即可:

IIS 上新增 MIME Type方法:


6.png
MIME Type

3.2 出现的问题二:

7.png


问题2


这是域名问题,域名输错或者设置错误,需要重新检查输入的命令。

打赏

取消

感谢支持 Savalone !

扫码支持

打开支付宝扫一扫,即可进行扫码打赏哦


「本文由 Savalone 原创或搜集整理发布,转载请遵守 CC BY-NC-ND 4.0 许可!」
  • 39