前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Letsencrypt 泛域名 SSL 证书免费申请

Letsencrypt 泛域名 SSL 证书免费申请

作者头像
zhonger
发布于 2022-10-28 02:53:27
发布于 2022-10-28 02:53:27
12.3K00
代码可运行
举报
文章被收录于专栏:仲儿的专栏仲儿的专栏
运行总次数:0
代码可运行

HTTPS 和 Let’s encrypt 简介

  超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为 HTTP over TLS,HTTP over SSL 或 HTTP Secure)是一种网络安全传输协议。在计算机网络上,HTTPS 经由超文本传输协议进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网络服务器的身份认证,保护交换数据的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。

  HTTPS 连接经常用于万维网上的交易支付和企业信息系统中敏感信息的传输,而如今在 Goolge 、 Mozilla 等大厂的联合推广下, HTTPS 已经成为了每一个站点的安全必备要素。

  然而 HTTPS 要求在一层加密连接(TLS 或 SSL)上来进行常规的 HTTP 协议,因此搭建 HTTPS 站点必须要先获得一个 SSL 证书。 SSL 证书是经过所谓的国际顶级 CA 机构进行颁发,大部分情况下是需要支付一定的费用的。根据支付不同价格的费用,可以分别域名型 DV 、企业型 OV 和增强型 EV ,这个可以参考 腾讯云 SSL 产品介绍 来理解一下。

  由于有了 Google 、 Mozilla 等大厂的 HTTPS 呼吁,他们也想能够提供给站点免费的 SSL 证书借此来提升大家迁移到 HTTPS 站点的热情,于是就有了非常著名的 Let’s encrypt 这样一款非常好看又好玩的产品。 Let’s encrypt 在发展之初仅支持向单域名或者多域名颁发一个证书、60 天有效期,每个证书最多包含 100 个域名,而且需要通过 DNS 解析记录和 HTTP 访问来验证域名的所有权,因此对于站点是否处于公网是有要求的。有人说站点不是都在公网上,难道连内网中的站点也要 HTTPS 化吗?其实如果按照之前的情况来看,内网站点 HTTPS 化只能采用曲线的方式实现。(用一台公网服务器来申请好证书,再将域名解析到内网并且部署证书在内网,这样的坏处就是始终需要通过这样一个方式来更新证书,十分麻烦。)于是,certbot 这款优秀的工具就诞生了。certbot 支持大部分的 web 服务器(例如 Nginx、Apache 、Haproxy 等)和大部分的操作系统(Centos 系列、Debian 系列、Archlinux 等),不得不说是所有 Let’s encrypt 衍生出的 SSL 证书申请工具的佼佼者。

  在2018年3月,Let’s encrypt 在很长一段时间的努力下,终于进一步缩小了 SSL 证书颁发的限制,已经支持颁发泛域名证书(原文)。这样一来,在内网中部署 SSL 证书将不再受限,所有的要求只剩下一点—-你对申请证书的域名具有所有权。在众多的 Let’s encrypt SSL 证书申请工具中,acme.sh 一下子就脱颖而出了。acme.sh 支持通过 DNS 来验证域名所有权,因此你只需在指定域名时前面加上 * 就可以申请一枚免费的泛域名了。

SSL 证书申请

  下面我们将会以申请 *.shu.aixinwu.org 为例来讲一下这款工具的用法,真的是很清真。

申请泛域名

  申请泛域名的第一步自然是安装 SSL 证书申请工具了,当然我们选用的是 acme.sh

下载 acme.sh 工具

  acme.sh 官方提供一个非常简单的一键安装脚本,老少皆宜。当然,安装这个工具对于是否在公网并没有任何要求,你可以选择在将要部署 SSL 证书的内网服务器中安装即可,请用非root用户全程执行命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 安装acme.sh
curl https://get.acme.sh | sh

# 使acme.sh在bash中生效
source .bashrc 

提交泛域名

  安装好acme.sh工具,就可以开始提交泛域名申请了,按照下面命令就可以使用 DNS 验证的方式来提交申请。结果会返回一个 TXT 记录新增的要求。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
acme.sh --issue --dns -d shu.aixinwu.org -d *.shu.aixinwu.org --yes-I-know-dns-manual-mode-enough-go-ahead-please

添加 DNS 记录

  根据上一步返回的 TXT 记录添加要求,在相应的域名 DNS 服务提供商那里添加好对应的 TXT 记录即可。如下图所示。

生成泛域名证书

  在添加好 TXT 记录之后,就可以使用更新命令来请求颁发泛域名证书。执行下面这条命令之后可以发现返回了生成的文件的本地路径。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
acme.sh --renew -d shu.aixinwu.org -d *.shu.aixinwu.org --yes-I-know-dns-manual-mode-enough-go-ahead-please

  到此为止,泛域名证书已经申请完成,但是用于部署还有点小毛病。因为通过 DNS 申请生成的 SSL 证书的 key 和 cer 两个文件都不是标准的 pem 文件格式,在某些浏览器或者终端中会出现缺少中间 CA 机构证书的问题(尽管在大部分浏览器中是没有任何问题的,但是为了终端中不产生问题最好还是修复该问题),所以需要在正式部署之前生成好 pem 证书。

部署泛域名

  这里以 Nginx 为例来展示部署泛域名的步骤。首先是通过 key 和 cer 文件来生成对应包含完整证书链的 pem 文件。

生成 pem 证书

  acme.sh 工具自身就提供一键生成 pem 证书的方式,无须像网上很多博客中讲的通过 openssl 原生命令来转换文件。以下操作即可生成的 key 和 cert 的 pem 文件到用户主目录的 ssl 文件中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
acme.sh --install-cert -d shu.aixinwu.org \
--key-file /home/ubuntu/ssl/shu.aixinwu.org.key.pem \
--fullchain-file /home/ubuntu/ssl/shu.aixinwu.org.cert.pem 

添加到 Nginx 中

  以下为 Nginx 文件文件示例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server
    {
        listen 80;
        listen [::]:80;
        server_name shu.aixinwu.org *.shu.aixinwu.org;
        return 301 https://$host$request_uri;
    }

server
    {
        listen 443;
        listen [::]:443;
        server_name shu.aixinwu.org *.shu.aixinwu.org;
        ssl on;
        ssl_certificate /home/ubuntu/ssl/shu.aixinwu.org.cert.pem;
        ssl_certificate_key /home/ubuntu/ssl/shu.aixinwu.org.key.pem;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/shu.aixinwu.org;

        location /
        {
            try_files $uri @apache;
        }

        location @apache
        {
            internal;
            proxy_pass http://127.0.0.1:89;
            include proxy.conf;
        }

        access_log  /home/wwwlogs/shu.aixinwu.org.log  access;
    }

总结

  虽然通过这样的方式我们成功实现了免费申请内网 SSL 泛域名证书,但是经过实践发现,目前 Let’s encrypt 所提供的泛域名证书只能支持到最近一级通配。比如说,现在申请的是 *.shu.aixinwu.org ,如果站点域名为 www.t.shu.aixinwu.org 即被判别为无效域名,像 www.shu.aixinwu.org 即可认定为合法 SSL 证书。其实因为这种泛域名证书目前并没有提出任何限制,我们可以多级通配就申请多个即可。

版权声明:如无特别声明,本文版权归 仲儿的自留地 所有,转载请注明本文链接。

(采用 CC BY-NC-SA 4.0 许可协议进行授权)

本文标题:《 Letsencrypt 泛域名 SSL 证书免费申请 》

本文链接:https://cloud.tencent.com/developer/article/2142931

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
免费泛域名SSL证书
acme.sh 官方提供一个非常简单的一键安装脚本,老少皆宜。当然,安装这个工具对于是否在公网并没有任何要求,你可以选择在将要部署 SSL 证书的内网服务器中安装即可,请用非root用户全程执行命令。
chuchur
2024/11/21
2.6K0
Let's Encrypt免费泛域名SSL证书申请及自动续签
Let's Encrypt: https://letsencrypt.org , 是一个免费的、自动化的、开放的证书颁发机构。截至2018年9月,它的全球SSL证书市场份额已超过50%,得到主流浏览器和厂商的认可与支持。
Cong Min
2019/09/07
21.3K1
双十一活动购腾讯云轻量云免费申请ssl证书,给你的应用加一道安全锁
之前介绍了《腾讯云轻量应用服务器部署私有笔记》,https://cloud.tencent.com/developer/article/2466047 搭建了自己的私有笔记系统,但是没有申请ssl证书,没有SSL证书的网站数据传输不被加密,这使得登录凭证、个人信息、支付详情等敏感信息容易被第三方拦截和窃取,增加了数据泄露的风险。
星哥玩云
2024/11/19
5980
双十一活动购腾讯云轻量云免费申请ssl证书,给你的应用加一道安全锁
通过acme.sh开源工具申请泛解析SSL证书
2.Linux云服务器(本文系统某讯云的Centos7),测试公网IP为:150.158.130.33
星哥玩云
2022/06/28
3850
通过acme.sh开源工具申请泛解析SSL证书
CentOS下申请let's encrypt SSL证书
title: CentOS下申请let’s encrypt SSL证书 date: 2020-04-01 23:31:42 tags: [Hexo,建站] categories: [建站]
JaneYork
2023/10/11
7760
CentOS下申请let's encrypt SSL证书
利用acme.sh快速获取SSL证书 - wuuconix's blog
之前我的wuuconix.link和wuuconix.xyz域名的SSL证书都是通过 来此加密 - Let’s Encrypt 在线免费申请SSL证书 (osfipin.com) 申请的,它是一个网页端的SSL证书申请工具。
wuuconix
2023/03/16
2.2K0
利用acme.sh快速获取SSL证书 - wuuconix's blog
使用 acme.sh 自动申请并更新泛域名证书
在互联网快速发展的今天,网站安全愈发重要,而 SSL/TLS 证书成为了保护网站数据的基础。对于管理多个子域的用户来说,泛域名证书(Wildcard Certificate)是一种高效便捷的选择。
沈唁
2024/11/03
1K0
使用 acme.sh 自动申请并更新泛域名证书
手把手教你免费申请支持通配符的 SSL 证书
得益于 Google 等大厂的消灭 HTTP 运动和 Let’s Encrypt 非盈利组织的努力,越来越多的站点开始迁移到 HTTPS,下图是 Let’s Encrypt 的统计数据。
iMike
2019/07/30
7.1K0
腾讯云DNSPod域名API申请Let’s Encrypt泛域名免费SSL证书教程
Let’s Encrypt是目前使用最为广泛的免费SSL证书,蜗牛789使用的就是此款免费SSL证书,早在2017年7月份起Let’s Encrypt官方就发布将在2018年上线泛域名免费SSL证书。现在终于可以申请Let’s Encrypt的泛域名免费SSL证书。暂时只能通过DNS方式获取,支持的DNS解析有很多,国内可以通过腾讯云的DNSPod.cn域名API和阿里云域名API自动颁发Let’s Encrypt泛域名免费SSL证书。
墨渊
2018/05/11
19.8K6
使用acme.sh申请Let's Encrypt免费的SSL证书
acme.sh 实现了 acme 协议,可以从letsencrypt生成免费的证书。接下来将为大家介绍怎样申请Let's Encrypt通配符证书。
青阳
2021/09/15
6K4
用acme.sh自动部署域名证书
目前使用量最大的免费SSL证书就是Let’s Encrypt,自2018-03开始,Let’s Encrypt官方发布上线了免费的SSL泛域名证书,目前通过DNS方式获取比较快,国内可以通过鹅云的DNSPod域名API或者猫云域名API自动签发Let’s Encrypt泛域名证书。因为鹅云使用的就是DNSPod域名,并且鹅云和DNSPod的账号是打通的,可以使用wx直接扫码登录。下文需要对鹅云和DNSPod进行操作,为了简化证书申请过程,需要提前安装acme.sh。acme.sh实现了acme协议,可以从Let’s Encrypt生成免费的证书,自动创建cron任务, 每天零点自动检测所有的证书,如果发现证书快过期了,需要更新,则acme.sh会自动更新证书,安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在安装目录中。
摘繁华
2022/12/05
3.3K0
用acme.sh自动部署域名证书
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程
熟悉陌涛的都知道,陌涛一直都在使用 acme.sh 作为服务器端申请、部署、续期免费 SSL 证书的主要工具,今天在帮一个站长申请 SSL 证书的时候发现 acme.sh v3.0 开始默认的免费 SSL 证书变更为:ZeroSSL 了,这个 ZeroSSL 其实跟陌涛一直用的 Let's Encrypt 类似,在 2016 年就已经推出,和 Let's Encrypt 一样,证书有效期只有 90 天,支持泛域名 SSL 证书。和 Let's Encrypt 不同的是,ZeroSSL API 没有速率限制,不存在同一 IP 多次申请 SSL 证书被限制的问题,ZeroSSL 还提供了 WEB 界面可在后台管理 SSL 证书,相比 Let's Encrypt 功能更加丰富。
陌涛
2022/05/03
11.7K1
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程
告别焦虑:使用 acme 实现 ssl 免费证书到期自动更新
👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.
Lorin 洛林
2024/08/09
3.8K0
正确使用 acme.sh, 让你的网站永久使用 ssl 证书,It's free!
acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.
用户1418987
2023/12/06
11.5K1
正确使用 acme.sh, 让你的网站永久使用 ssl 证书,It's free!
HTTPS 证书配置一劳永逸
HTTPS 是在 HTTP 协议基础之上加了一层 SSL/TLS 安全认证机制,原理功能概括一句即客户端和服务端在非对称密钥通讯中交换临时对称密钥进行的加密数据通信,达到防止数据传输中途被第三方窃取的目的
ywgx
2018/06/25
2.8K0
HTTPS 证书配置一劳永逸
如何使用acme.sh自动获取、更新Let’s Encrypt的SSL证书?
acme.sh实现了acme协议,可以从let's encrypt生成免费的ssl证书。本文主要记录使用dnspod api 自动申请ssl证书
房东的狗丶
2023/02/17
5.6K0
Let's Encrypt 配置 HTTPS 免费泛域名证书
想要使用 HTTPS ,你必须先拥有权威 CA(证书签发机构)签发的证书(对于自签名的证书,浏览器是不认账的)。Let's Encrypt 就是一家权威的 CA 证书签发机构,你可以向他申请免费的证书(一般商业证书的价格比较贵)。
凌虚
2020/07/18
4.1K0
Let's Encrypt 配置 HTTPS 免费泛域名证书
腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书过程记录
目前使用量最大的免费 SSL 证书就是 Let’s Encrypt 了,在 2018 年 3 月份 Let’s Encrypt 官方发布上线泛域名免费 SSL 证书,现在终于可以申请了。目前通过 DNS 方式获取比较快,国内可以通过腾讯云的 DNSPod 域名 API 和阿里云域名 API 自动颁发 Let’s Encrypt 泛域名 SSL 证书。本文记录腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书的过程。
魏艾斯博客www.vpsss.net
2018/05/07
11K7
腾讯云 DNSPod 域名 API 申请 Let’s Encrypt 泛域名 SSL 证书过程记录
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程
今天跟彧繎聊天时发现他的站使用的也是泛域名证书而且是一年了,问了他才知道是收费的,当然并不贵,只是我没有admin开启的邮箱也就是admin#talklee.com,所以无法申请,恰巧看到明月登楼博主的博客也是SSL证书就咨询了以下,发现他的是zerossl的证书,当然跟青云的一样有效期三个月,但是zerossl可以通过acme.sh实现自动续费,目前acme泛域名貌似仅仅命令形式申请,在官网上申请的时候需要一些费用才行。
李洋博客
2022/04/26
3.1K0
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程
最新版泛域名证书申请
泛域名证书又名通配符证书是SSL证书中的其中一种形式,一般会以通配符的形式(如:*.domain.com)来指定证书所要保护的域名。
小陈运维
2022/07/27
5.1K0
推荐阅读
相关推荐
免费泛域名SSL证书
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档