使用Let‘s Encrypt 申请通配符证书

为什么不使用阿里云/腾讯云等公有云厂商提供的免费证书?


上篇介绍了从阿里云上面申请免费证书,有效期一年 为网站配置https证书

公有云提供的证书不支持通配符,只支持某个确定的解析。 不管是二级域名还是三级域名,只要是具体的确定的地址,都可以使用。

对于某个域名,如果DNS解析很少,如只有mail.abc.com,www.abc.com,blog.abc.com, 用公有云需要分别为其申请3个证书。

所以如果目前的域名解析不是太多,每年操作一次,也还可以。(注:据说现在有效期降为了三个月)

但很多场景下,公司业务很多,某个域名的A记录不可能只有这三两个,如qq.com, 可能下面有www.qq.com,qzone.qq.com, mail.qq.com,weixin.qq.com…等成百上千个

这时候就需要用到通配符证书,而公有云厂商大多并不支持申请免费的通配符证书,往往需要氪金


关于 通配符域名证书


通配符域名证书是什么? 和普通的证书比有什么区别?

通配符域名证书是一种用于保护多个子域名的 SSL/TLS 证书。它使用通配符字符(通常是星号 *)来表示一个或多个子域名的部分或全部。例如,一个通配符域名证书可以覆盖 *.example.com,这意味着它可以保护诸如mail.example.com、blog.example.com和www.example.com等子域名。

与普通的证书相比,通配符域名证书具有以下区别:

  1. 覆盖多个子域名:通配符域名证书可以覆盖一个顶级域名下的多个子域名,而普通证书只能保护一个具体的域名。

  2. 灵活性和便利性:使用通配符域名证书可以简化证书管理过程。相比为每个子域名单独购买和配置证书,只需使用一个通配符证书即可涵盖所有需要保护的子域名。

需要注意的是,通配符域名证书只能覆盖一个级别的子域名。例如,*.example.com 可以保护 mail.example.com、blog.example.com,但无法保护 mail.server.example.com。如果需要保护多级子域名,可能需要考虑使用泛域名证书(Wildcard Certificate)。

【技术种草】如何免费申请通配SSL证书

通配符域名证书都支持哪些域名?

再次确认,阿里云的通配符域名需要收费!

即 **多次申请过免费SSL证书,(当时)有效期一年,看起来只能针对单个具体地址。

没觉得这玩意多复杂,有收费的通配符域名,只要氪金,以为整个域名,不管三级四级五级,申请一个证书就可以。

即便使用通配符证书,也只能作用于某一级的,比如想要 *.qq.com一个证书涵盖这个域名下所有二级,三级,四级域名,是做不到的(可能是出于安全目的故意这样规定?),只能覆盖全部xxx.qq.com,而对yyy.xxx.qq.com起不到作用


Let’s Encrypt


前面说到公有云一般不提供免费的通配符证书,但还是有一些赛博菩萨,提供这样的免费服务。其中Let’s Encrypt是最知名的之一,甚至有人认为,https的推广普及,其功不可没。

Let’s Encrypt 通过免费、自动化的方式推动了网站的加密普及,提供了简单、安全和可靠的 SSL/TLS 证书解决方案,为用户提供更安全的网络体验。


Let’s Encrypt 是什么?有何作用?

Let’s Encrypt 是一个免费、自动化的证书颁发机构(Certificate Authority,简称 CA),旨在为网站提供免费的 SSL/TLS 证书。它于2015年成立,由 Electronic Frontier Foundation(EFF)、Mozilla Foundation、University of Michigan 等组织共同支持。

Let’s Encrypt 的目标是通过简化证书颁发流程,推动整个互联网的加密普及。传统的 SSL/TLS 证书需要手动申请、验证身份、付费并进行周期性续签,这给网站管理员带来了一定的复杂性和成本。而 Let’s Encrypt 采用了自动化的证书颁发流程,可以方便快速地获取和更新证书。


Let’s Encrypt 的作用包括:

  1. 提供免费的 SSL/TLS 证书:Let’s Encrypt 提供了免费的数字证书,使得网站管理员可以轻松地为其网站启用加密连接,实现安全传输和数据保护。

  2. 促进网站加密普及:由于免费且易于使用,Let’s Encrypt 在推动整个互联网的加密普及方面发挥了重要作用。更多的网站采用 SSL/TLS 加密可以提升用户隐私和数据安全,减少网络攻击和信息泄漏的风险。

  3. 自动化证书管理:Let’s Encrypt 提供了一套自动化的证书颁发流程和工具,使得证书的申请、验证和更新变得简单和便捷。通过使用 Let’s Encrypt 提供的 ACME 协议,可以实现证书的自动续签,减少了证书管理的负担。

申请及使用


参考 申请 Let’s Encrypt 通配符 HTTPS 证书

根据不同系统,安装certbot

brew install certbot

或者

sudo apt-get install certbot

Certbot是一个由Let’s Encrypt官方提供的免费开源的工具,它可以帮助用户自动化地获得、续期和部署SSL/TLS证书。 Certbot支持多种Web服务器,包括Apache、Nginx、Caddy等,用户可以使用Certbot来自动化地安装和配置SSL/TLS证书,以提高网站的安全性。


certbot -d n.dashen.tech(你要申请的证书,其实这里完全可以写*.dashen.tech) --manual --config-dir config --work-dir work --logs-dir logs --preferred-challenges dns certonly

其中,

  • --manual:指定使用手动方式进行域名验证。这意味着 certbot 将会提示用户手动添加 DNS TXT 记录或 HTTP 文件来验证域名所有权。这通常需要一定的技术知识和操作技巧。

  • --config-dir config:指定 certbot 的配置文件目录为 config。在该目录下,certbot 将会保存证书和其他配置信息。

  • --work-dir work:指定 certbot 的工作目录为 work。在该目录下,certbot 将会生成临时文件和其他工作文件。

  • --logs-dir logs:指定 certbot 的日志文件目录为 logs。在该目录下,certbot 将会保存运行日志和其他信息。

  • --preferred-challenges dns:指定首选的验证方式为 DNS 验证。这意味着 certbot 将会使用 DNS TXT 记录来验证域名所有权。

  • certonly 参数表示只获取证书,而不进行证书安装。如果要同时获取证书和安装证书,可以使用 run 命令代替 certonly 命令。


按提示来即可~

中间需要去域名注册商管理后台,在你的域名下增加一条TXT解析,做验证用,证明这域名属于你---一般有两种验证方式(称为Challenge),HTTP方式和DNS方式,增加TXT属于DNS方式。

(其实还有一种TLS-SNI-01的验证方式,目前用的不多,更多可参考 验证方式
)


再修改一下nginx配置,之后 ./nginx -s reload

(如果使用K8s,则创建新的secret,并编辑相应的ingress)


其实还有一个和Let’s Encrypt 差不多的,叫TrustAsia,也有些知名度

6家免费的SSL证书服务商

SSL证书系列–Let’s Encrypt和TrustAsia哪个好?

从 Let’s Encrypt 证书换成TrustAsia 证书的操作过程及注意事项


续期


Let’s Encrypt证书有效期只有90天,需要注意续约。 在离到期时间还有不到30天时,就可以进行此操作。

一般可以使用certbot,并借助crontab自动续期…详情可参考下面两篇文章

(一般certbot最好就安装在这个网站的机器上,而不是在另外一台机器上申请到证书,再传上去,进行配置,这样不好自动化)

Let’s Encrypt请求证书、续订与定时续订

Certbot对免费Let’s Encrypt证书的续期

但为了稳妥起见,最好还是通过监控的方式,当证书有效期低于某个时间时,告警出来,再去手动或自动更新证书。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/737424.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

记MySQL事务+消息队列引起的问题

问题描述: 先说一下流程:后端保存前端提交的图表信息,然后发送异步消息到消息队列,由下游服务去处理图表信息。 部署项目到服务器,验证项目功能的时候,出现了以下错误:数据库存在数据。下游服…

【服务器07】之【GitHub项目管理】及【Unity异步加载场景】

登录GitHub官网 GitHub: Let’s build from here GitHub 注册账号 登录账号 输入一个自定义名字,点击创建存储库就可以了 现在我们下载Fork Fork - a fast and friendly git client for Mac and Windows (git-fork.com) 免费的 下载完成之后点击File下的Clone …

黑苹果EFI详细配置说明

先上网址: https://dortania.github.io/OpenCore-Install-Guide/installer-guide/opencore-efi.html 1: 了解作用 ACPI作用: 总结: ACPI是UEFI引导方式和操作系统之间的硬件抽象接口,概述了硬件设备,如 USB 控制器、CPU 线程、嵌入式控制器、系统时钟等 硬件设备识别和驱动:…

Nacos 2.x 系列【15】数据源插件支持达梦、Oracel、PostgreSQL......

文章目录 1. 概述2. 持久层机制2.1 固定语句2.2 数据源插件 3. 案例演示3.1 编译已实现插件3.2 自定义插件3.3 数据库初始化3.4 插件引入3.4.1 方式一:引入到源码3.4.2 方式二:插件加载目录 3.5 修改配置3.6 测试 1. 概述 在实际项目开发中,…

设计模式导读:建造者模式的细腻之处与编程技巧

笔者的碎碎念 其实之前有写过建造者模式的文章,但是感觉其实写的不怎么样,而且自己也理解的一般,但是阅读一些框架源码发现,这些模式真的蛮重要的,很多框架例如OkHttp,Retrofit等等都大量使用了建造者模式…

将知乎专栏文章转换为 Markdown 文件保存到本地

一、参考内容 参考知乎文章代码 | 将知乎专栏文章转换为 Markdown 文件保存到本地,利用代码为GitHub:https://github.com/chenluda/zhihu-download。 二、步骤 1.首先安装包flask、flask-cors、markdownify 2. 运行app.py 3.在浏览器中打开链接&…

了解请求参数与响应参数的区别:初学者指南

在 Web 的开发领域,无论你是前端开发还是后端开发人员,把握请求与响应参数的核心差异是极其重要的。这些参数在客户端和服务器之间的互动中扮演着关键角色。 请求参数的定义及类别 定义 当客户端向服务器提交信息时所使用的数据被称为请求参数。这些参…

深入理解TCP协议:工作原理、报文结构及应用场景

TCP协议详解 TCP(Transmission Control Protocol,传输控制协议)是因特网协议套件中最重要的协议之一。它为应用程序提供了可靠、面向连接的通信服务。TCP协议确保数据包按顺序到达,并且没有丢失或重复。本文将详细介绍TCP协议的工…

免费ddns工具,快解析DNS解析使用教程

DDNS(Dynamic Domain Name Server),中文叫动态域名解析,主要用于没有固定公网ip的网络环境下,使用一个固定的域名,解析动态变化的ip地址,达到远程访问的目的。 众所周知,目前公网ip资源非常紧缺…

Springboot多模块项目从0构建打包运行

今天复习了一下Springboot的多模块的构建,其实一直以来都对单体项目使用多模块感到不太理解,不知道到底有什么样的优势,目前切身体会到的优势就是确实可以让依赖的划分更加清晰(每个模块下的pom文件只引入该模块需要的依赖&#x…

基于imx6ull开发板 移植opencv4.7.0

一、概述 本章节是针对opencv-4.7.0移植到Linux系统,运行在正点原子-I.MX6U ALPHA开发板 上,详细的移植流程如下。 二、环境要求 2.1 硬件环境 正点原子-I.MX6U ALPHA开发板虚拟机:VMware 2.2 软件环境 Ubuntu系统要求:20.0…

常用算法及参考算法 (1)累加 (2)累乘 (3)素数 (4)最大公约数 (5)最值问题 (6)迭代法

常用算法及参考算法 &#xff08;1&#xff09;累加 &#xff08;2&#xff09;累乘 &#xff08;3&#xff09;素数 &#xff08;4&#xff09;最大公约数 &#xff08;5&#xff09;最值问题 &#xff08;6&#xff09;迭代法 1. 累加 #include <stdio.h>int main() {…

物理层(一)

第2章 物理层 2.1 通信基础 2.1.1 基本概念 1、数据、信号与码元 通信的目的是传输信息&#xff0c;如文字、图像和视频等。数据是指传送信息的实体。信号则是数据的电气或电磁表现&#xff0c;是数据在传输过程中的存在形式。数据和信号都有模拟或数字之分:①模拟数据(或模…

Day15 —— 大语言模型简介

大语言模型简介 大语言模型基本概述什么是大语言模型主要应用领域大语言模型的关键技术大语言模型的应用场景 NLP什么是NLPNLP的主要研究方向word2vecword2vec介绍word2vec的两种模型 全连接神经网络神经网络结构神经网络的激活函数解决神经网络过拟合问题的方法前向传播与反向…

【数据结构与算法】详解循环队列:基于数组实现高效存储与访问

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《数据结构与算法》 期待您的关注 ​ 目录 一、引言 &#x1f343;队列的概念 &#x1f343;循环队列的概念 &#x1f343;为什…

python基础语法 003-1 数据类型列表

1 列表 1.1 列表的定义 关键字&#xff1a;list()标识&#xff1a;[] 用逗号隔开使用最频繁的数据类型&#xff0c;列表可以完成大多数集合类型的数据结构实现支持字符、数字、字符串、甚至可以包含列表&#xff0c;即嵌套打印列表类型&#xff1a;type()1个元素的列表表示&…

【Linux基础】文件基本属性

Linux文件基本属性是指文件或目录在Linux系统中具有的一系列特性和信息。这些属性提供了关于文件或目录的详细信息&#xff0c;包括其类型、权限、大小、创建和修改时间等。 文件属性 在 Linux 中我们可以使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组…

springCloud组件专题(四) --- sentinel

前言 限流&#xff0c;熔断降级概念 限流&#xff1a;顾名思义&#xff0c;就是对一个资源&#xff08;服务或者接口都可以算资源&#xff09;的访问进行限制。简单来说就是限制单位时间内允许资源被访问的次数。常见的算法就是令牌桶算法。 降级&#xff1a;降级其实是一种资源…

常用主流sip协议软电话客户端软件有哪些?—— 筑梦之路

Ekiga 官网地址&#xff1a;Ekiga ~ Free Your Speech Ekiga&#xff0c;原名GnomeMeeting&#xff0c;支持Windows和Linux&#xff0c;是一个兼容SIP和H.323的视频会议程序&#xff0c;兼容VoIP&#xff0c;IP电话&#xff0c;通过Ekiga可以与使用任何SIP和H.323软硬件的远程…

C语言 | Leetcode C语言题解之第188题买卖股票的最佳时机IV

题目&#xff1a; 题解&#xff1a; int maxProfit(int k, int* prices, int pricesSize) {int n pricesSize;if (n 0) {return 0;}k fmin(k, n / 2);int buy[k 1], sell[k 1];memset(buy, 0, sizeof(buy));memset(sell, 0, sizeof(sell));buy[0] -prices[0];sell[0] 0…