域名分为主域名 test.com 和泛域名 *.test.com

如果又很多子域名,每个都要配置证书

这也太麻烦了。

所以这次我们来学习 如何搞泛域名证书。

安装certbot

certbot 官方推荐的自动化脚本, 用来申请免费SSL证书的。 (certbot中文翻译是 证书机器人的意思)

centos9以前

# 安装 certbot 以及 certbot nginx 插件
yum install -y certbot python3-certbot-nginx

centos9, 有所改动

yum install -y epel-release
yum install -y certbot python3-certbot-apache

()申请证书

执行证书生成命令,

过程中根据命令提示,去云服务商后台增加一条dns,并将certbot生成的参数填写到dns配置的相关位置(不要执行一下代码)。

certbot certonly -d *.dingshaohua.com --manual --preferred-challenges dns

按照提示,在你的域名服务商处,添加对应的 DNS TXT 解析记录

为什么certbot 需要你在云服务商增加dns,还不是为了证明这个域名是你所有权的

再回车继续,证书就生成了。

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/dingshaohua.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/dingshaohua.com/privkey.pem
This certificate expires on 2024-05-01.
These files will be updated when the certificate renews. NEXT STEPS:
- This certificate will not be renewed automatically. Autorenewal of --manual certificates requires the use of an authentication hook script (--manual-auth-hook) but one was not provided. To renew this certificate, repeat this same certbot command before the certificate's expiry date.

()通配符证书只是针对二级域名

注意 Let’s encrypt通配符证书只是针对二级域名,并不能针对主域名,如*.dingshaohua.comdingshaohua.com 被认为是两个域名,在申请的时候需要注意都要申请(不用担心 生成的证书仍然只有一个 不会有几个域名就会有几个) (执行这个!!!)

certbot certonly  -d "*.dingshaohua.com" -d "dingshaohua.com" --manual --preferred-challenges dns

使用证书

首先,你需要在域名服务商处,提前配置好域名解析(这个跟证书无关,就算是http方式访问你也的配置)。

其次,在nginx配置配置,比如 我有两个域名想使用这个证书dingshaohua.coma.dingshaohua.com,那么配置如下即可

# dingshaohua.com
server {
listen 80;
server_name dingshaohua.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
# nginx使用虚拟主机来配置站点:每个虚拟主机使用server { } 来配置
# listen用来配置监听端口,server_name为虚拟主机服务名称
listen 443 ssl;
server_name dingshaohua.com; # 证书位置
ssl_certificate /etc/letsencrypt/live/dingshaohua.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dingshaohua.com/privkey.pem; #证书校验(通用)
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; # 路由
location / {
root /home/webroot/book-ding;
try_files $uri $uri/ /index.html;
}
} # a.dingshaohua.com
server {
listen 80;
server_name a.dingshaohua.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl;
server_name a.dingshaohua.com; ssl_certificate /etc/letsencrypt/live/dingshaohua.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dingshaohua.com/privkey.pem; ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; location / {
root /home/abc;
}
}

续签

# 根据提示处理
certbot certonly -d *.klvchen.com --manual --preferred-challenges dns
# 或
certbot renew
# 或
certbot renew --quiet

一些参考阅读

certbot命令参数含义

https://blog.csdn.net/neizhiwang/article/details/105605967

https://www.4spaces.org/217.html

https://zhuanlan.zhihu.com/p/627526278

什么是通配符证书

https://www.zhihu.com/question/602288859/answer/3109842778

证明Let’s encrypt通配符证书只是针对二级域名,并不能针对主域名

https://cloud.tencent.com/developer/article/1915432?areaId=106001

https://weibo.com/6916341052/JhAkDDNik

https://www.5288z.com/2267.html

https://blog.csdn.net/owenzhang24/article/details/122234156

Let’s Encrypt申请泛域名证书的更多相关文章

  1. Let's encrypt申请泛域名证书以及报错处理

    申请泛域名证书的步骤请参考该链接地址: https://www.jianshu.com/p/df6d13187578 报错信息: No matching distribution found for ...

  2. Let's encrypt申请泛域名证书

    1.下载工具 wget https://dl.eff.org/certbot-auto chmod a+x ./certbot-auto 2.初始化 ./certbot-auto 3.获取证书(1) ...

  3. Let's Encrypt免费泛域名证书申请

    一. 下载acme.sh,以下四条命令任选一条即可 curl https://get.acme.sh | shwget -O - https://get.acme.sh | sh curl https ...

  4. 使用 certbot 申请泛域名https证书

    使用 certbot 申请泛域名https证书 Intro Certbot 是一个基于 Let's Encrypt 的自动化申请证书的工具,支持的系统和web server也很多,详见 Certbot ...

  5. CentOS 7配置Let’s Encrypt支持免费泛域名证书

    Let’s Encrypt从2018年开始支持泛域名证书,有效期3个月,目前仅支持acme方式申请,暂不支持certbot. 1.安装acme.sh curl https://get.acme.sh ...

  6. let's encrypt部署免费泛域名证书

    环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhos ...

  7. acme.sh建立SAN证书 和泛域名证书

    文件来源 https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert domain=$domain time=`date +%Y%m%d% ...

  8. 申请 Let’s Encrypt 泛域名证书 及 Nginx/Apache 证书配置

    什么是 Let’s Encrypt? 部署 HTTPS 网站的时候需要证书,证书由 CA (Certificate Authority )机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于 ...

  9. 基于Let's Encrypt生成免费证书-支持多域名泛域名证书

    目录 客户端 certbot acme.sh 安装acme.sh 1. 自动安装 2. 手动安装 3. 测试收否安装成功 使用acme.sh生成证书 1. HTTP 方式 2. DNS 方式 1. 生 ...

  10. 使用 acme.sh 签发续签 Let‘s Encrypt 证书 泛域名证书

    1. 安装 acme.sh 安装很简单, 一个命令: curl https://get.acme.sh | sh 并创建 一个 bash 的 alias, 方便你的使用 alias acme.sh=~ ...

随机推荐

  1. c数组与结构体

    数组,存储同类型的复合类型:结构体,存储不同类型的复合类型,用于自定义数据结构. 计算机中,针对存储大量数据的集合,有着两种方式,一种是以块式集中存储数据,这就是数组的存储方式,大量同类型的数据集中放 ...

  2. Maven导包报错Could not resolve dependencies for projectXXX was cached in the local repository....

    问题 将项目和maven仓库一起拿到了内网环境,一直报错无法解析依赖was cached in the local repository, resolution will not be reattem ...

  3. lua随写

    --local util={}--function util.Split(str, sep)-- local sep, fields = sep or ":", {}-- loca ...

  4. 详细介绍MessageQueueSelector

    一.MessageQueueSelector 详解 MessageQueueSelector 是 RocketMQ 提供的一个接口,用于自定义消息发送时的队列选择策略. 通过实现该接口, 开发者可以控 ...

  5. AQS的release(int)方法底层源码

    一.定义 release(int) 是 AQS(AbstractQueuedSynchronizer)中的一个核心方法,用于在独占模式下释放同步状态.如果释放成功,则会唤醒等待队列中的后继节点,使其有 ...

  6. 北京市第六届信息通信行业网络安全技能大赛(初赛)-CTF夺旗阶段 EZRSA writeup

    题目EZRSA EZRSA.py from Crypto.Util.number import * import gmpy2 from flag import m p = getPrime(1024) ...

  7. ServletContext相关

    简介 如何得到对象 有什么作用 1.获取全局配置参数 2.获取web工程中的资源 3.存取数据,servlet间共享数据 域对象 ServlerContext的生命周期 ServletContext ...

  8. 【笔记】Python爬虫|网页数据异步加载(结合Selenium完成)

    文章目录 问题描述 1. 结合Selenium.Edge解析该网站搜索页面的数据 2. 结合lxml解析网页数据 3. 附加:不是异步加载的网页,结合requests直接请求数据 问题描述 一些网站会 ...

  9. 网络编程:CMD命令

    要求: 写一个客户端程序和服务器程序,客户端程序连接上服务器之后,通过敲命令和服务器进行交互,支持的交互命令包括: pwd:显示服务器应用程序启动时的当前路径. cd:改变服务器应用程序的当前路径. ...

  10. Longest Substring Without Repeating Characters---LeetCode进阶路③

    题目描述 Given a string, find the length of the longest substring without repeating characters. Example ...