阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Windows Ubuntu Bash申请免费通配符证书(Let’s Encrypt)并绑定IIS

531次阅读
没有评论

共计 4060 个字符,预计需要花费 11 分钟才能阅读完成。

什么是 Let’s Encrypt?

部署 HTTPS 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 HTTPS 协议的使用。

Let’s Encrypt 也是一个 CA 机构,但这个 CA 机构是免费的!!!也就是说签发证书不需要任何费用。

什么是通配符证书

在没有出现通配符证书之前,Let’s Encrypt 支持两种证书。

1)单域名证书:证书仅仅包含一个主机。

2)SAN 证书:一张证书可以包括多个主机(Let’s Encrypt 限制是 20)

证书包含的主机可以不是同一个注册域,不要问我注册域是什么?注册域就是向域名注册商购买的域名。

对于个人用户来说,由于主机并不是太多,所以使用 SAN 证书完全没有问题,但是对于大公司来说有一些问题:

  • 子域名非常多,而且过一段时间可能就要使用一个新的主机。
  • 注册域也非常多。

读者可以思考下,对于大企业来说,SAN 证书可能并不能满足需求,类似于 sina 这样的网站,所有的主机全部包含在一张证书中,而使用 Let’s Encrypt 证书是无法满足的。

Let’s Encrypt 通配符证书

通配符证书就是证书中可以包含一个通配符,比如 .example.com、.example.cn,读者很快明白,大型企业也可以使用通配符证书了,一张证书可以防止更多的主机了。

这个功能可以说非常重要,从功能上看 Let’s Encrypt 和传统 CA 机构没有什么区别了,会不会触动传统 CA 机构的利益呢?

如何申请 Let’s Encrypt 通配符证书

为了实现通配符证书,Let’s Encrypt 对 ACME 协议的实现进行了升级,只有 v2 协议才能支持通配符证书。

也就是说任何客户端只要支持 ACME v2 版本,就可以申请通配符证书了,是不是很激动。

官方介绍 Certbot 0.22.0 版本支持新的协议版本

在了解该协议之前有几个注意点:

1)客户在申请 Let’s Encrypt 证书的时候,需要校验域名的所有权,证明操作者有权利为该域名申请证书,目前支持三种验证方式:

  • dns-01:给域名添加一个 DNS TXT 记录。
  • http-01:在域名对应的 Web 服务器下放置一个 HTTP well-known URL 资源文件。
  • tls-sni-01:在域名对应的 Web 服务器下放置一个 HTTPS well-known URL 资源文件。

而申请通配符证书,只能使用 dns-01 的方式

安装 Windows Ubuntu Bash

Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS

 

打开控制面板 \ 所有控制面板项 \ 程序和功能,点击左边的“启用 / 关闭 Windows 功能”

选择上“适用于 Linux 的 Windows 子系统”后点“确定”安装相关功能
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
然后打开“应用商店”Microsoft Store
搜索“Linux” 会出现”在 Windows 上运行 Linux 的专题。
列出来的 Linux 子系统都是 Windows10 支持的 Bash,
本人安装的是 Ubuntu
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
 
安装后会在菜单里显示 Ubuntu 的启动项,第一次运行的时候,会要求设置一下管理员的相关密码
按提示设置就可以了
然后从菜单启动,就会看到熟悉的 Ubuntu 控制台了
我们用 sudo lsb_release - a 就可以看到当前安装的 Ubuntu 版本了
 
Giant@Giant:~$ sudo lsb_release -a
[sudo] password for Giant:
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:      xenial

Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS

接下来我们开始在这个 Ubuntu Bash 里通过 Certbot 申请 Let’s Encrypt 通配符证书

 

首先安装 Certbot
打开 Certbot 官网 https://certbot.eff.org/
选择我们申请证书的使用方式后,就会出现相关安装命令
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
由于我们的 Ubuntu Bash 系统是 16.04 版本,所以选择此系统
然后就会看到安装命令为
 
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot

完成这些命令后,我们的申请证书工具 certbot 已经安装完成。
我们打算给 51tcsd.com 这个域名申请通配符证书
那么我们就运行此命令

$ sudo certbot certonly  -d *.51tcsd.com –manual –preferred-challenges dns –server https://acme-v02.api.letsencrypt.org/directory

介绍下相关参数:
  • certonly,表示安装模式,Certbot 有安装模式和验证模式两种类型的插件。
  • –manual 表示手动安装插件,Certbot 有很多插件,不同的插件都可以申请证书,用户可以根据需要自行选择
  • -d 为那些主机申请证书,如果是通配符,输入 *.newyingyong.cn(可以替换为你自己的域名)
  • –preferred-challenges dns,使用 DNS 方式校验域名所有权
  • –server,Let’s Encrypt ACME v2 版本使用的服务器不同于 v1 版本,需要显示指定。

接下去就是命令行的输出:

Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS

上述有两个交互式的提示:

  • 是否同意 Let’s Encrypt 协议要求
  • 询问是否对域名和机器(IP)进行绑定

确认同意才能继续。

继续查看命令行的输出,非常关键:

要求配置 DNS TXT 记录,从而校验域名所有权,也就是判断证书申请者是否有域名的所有权。

上面输出要求给 _acme-challenge.51tcsd.com 配置一条 TXT 记录,在没有确认 TXT 记录生效之前不要回车执行。

我使用的是阿里云的域名服务器,登录控制台操作如下图:

Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS

 
然后打开另一个终端输入以下命令确认配置是否生效

dig -t txt _acme-challenge.51tcsd.com @8.8.8.8

输出如下表示成功配置好 DNS 记录了
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS

然后在申请证书的终端里按下回车执行,输出如下
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS

关键信息如下
 
IMPORTANT NOTES:
 – Congratulations! Your certificate and chain have been saved at:
  /etc/letsencrypt/live/51tcsd.com-0001/fullchain.pem
  Your key file has been saved at:
  /etc/letsencrypt/live/51tcsd.com-0001/privkey.pem
  Your cert will expire on 2018-08-23. To obtain a new or tweaked
  version of this certificate in the future, simply run certbot
  again. To non-interactively renew *all* of your certificates, run
  “certbot renew”

表示把相关证书保存在了 /etc/letsencrypt/live/51tcsd.com-0001/ 这个目录
我们进去看一下此目录文件生成了如下文件
cert.pem  chain.pem  fullchain.pem  privkey.pem  README
在 Bash 下,如果没有用超级用户可能进不到 live/51tcsd.com-0001/,显示没有权限
我们用超级用户进入,命令如果下

$ sudo su

输出结果如下
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS

到此为此,申请证书相关的工作就完成了

接下来。怎么把申请到的证书导入到 IIS 中
由于我们申请的证书为 pem 格式,而 IIS 只支持 pfx 格式证书
所以我们要把输的人 pem 文件合并为 pfx 证书
这样我们就要用到 openssl 命令了
 
openssl pkcs12 -export -out 51tcsd.pfx -inkey privkey.pem -in fullchain.pem -certfile cert.pem

我们用此命令把 pem 文件合并为 51tcsd.pfx 文件,提示中要输入证书的密码,按提示输入即可
显示输出如下
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS

我们可以看到,当前目录下成功生成了 51tcsd.pfx 文件
接下来我们就要把 51tcsd.pfx 文件导入到 Windows 系统
我们知道 Ubuntu 对于 Windows 来说只是一个应用,
所以 Ubuntu 里所有的文件,我们都可以通过 Windows 资源管理里看到,
我发现我的 Ubuntu 目录挂载在我的 Windows 目录的此位置
C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
我们进到 C:\Users\Administrator\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\etc\letsencrypt\live\51tcsd.com-0001
就可以看到我们的 pfx 文件了
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
接下来。我们右键证书点安装 pfx
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
输入刚刚 openssl 合并的时候输入的密码
 
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
 
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
点完成后。就会显示导入成功了
接下来。我们打开 IIS 管理器。看到服务器证书里面,就能发现我们申请的通配符证书了
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
 
接下来,我们给一个站点绑定随便一个二级域名,比如:a.51tcsd.com
首先把 hosts 文件把 a.51tcsd.com 解析到我本机 127.0.0.1
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
然后在 IIS 里选择站点”Default Web Site” 选择右边的“绑定”
输入相关信息,并选择证书
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS
然后我们在浏览器里访问 https://a.51tcsd.com/
是不是看到惊喜了
Windows Ubuntu Bash 申请免费通配符证书 (Let's Encrypt) 并绑定 IIS

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4060字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7985157
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...