Let’s Encrypt 通配符证书,泛域名证书申请配置
首先你可以查看下官方提供的支持申请通配符证书的客户端列表:https://letsencrypt.org/docs/client-options/。
参考链接:https://github.com/Neilpang/acme.sh/wiki/dnsapi
这些客户端支持最新的ACME v2接口,而这个接口目前已经正式支持申请通配符证书啦。
这里,我使用acme.sh(https://github.com/Neilpang/acme.sh)这个Client,它是直接在bash下运行,使用非常简单,而且支持大多数DNS服务器的API自动验证!
1、安装acme.sh
curl https://get.acme.sh | sh
一句话完成安装,安装过程分为:
1)复制acme.sh的程序文件到当前用户主目录,比如root用户的:~/.acmh.sh目录下
2)创建一个alias:acme.sh=~/.acme.sh/acme.sh
安装过程中如果报错:

出现了红色的提醒:
It is recommended to install socat first
We use socat for standalone server if you use standalone mode.
If you don't use standalone mode, just ignore this warning.
大概意思就是叫我最好安装 socat
yum install epel-release -y
yum install socat -y
curl https://get.acme.sh | sh
安装成功后使用 acme.sh --version 查看版本
2、装完后,就可以开始申请证书了。
阿里云的DNS
为了能完成自动验证,需要在acme.sh的配置中写入阿里云的密钥信息:
申请地址:https://ak-console.aliyun.com/#/accesskey
申请完毕之后,我们需要复制Access Key ID、Access Key Secret,等会需要用到的
export Ali_Key="对应Access Key ID"
export Ali_Secret="对应Access Key Secret"
先在本地编辑好对应的信息,然后直接贴到SSH回车执行,会创建临时变量。(第三点方法命令执行后更改了 ~/.acme.sh/account.conf 文件的配置)
腾讯云DNS
域名是托管在了腾讯云上面的,那么你域名的解析服务商就是DNSPod。 你可以用腾讯云的账号或者腾讯云绑定的QQ,微信登录dsnpod的后台。DNSPod并入腾讯云,dnspod和腾讯云是一家
登录 dnspod后台。如果域名是在腾讯云上注册的,那么可以用腾讯云的账号密码或者腾讯云绑定的QQ、微信登录。
点击左侧的安全设置,『创建API Token』。
创建成功后,千万记着把ID和Token记录下来,因为窗口一旦关闭信息就无法找回了。
export DP_Id="xxx"
export DP_Key="xxxxxxx"
先在本地编辑好对应的信息,然后直接贴到SSH回车执行,会创建临时变量。(第三点方法命令执行后更改了 ~/.acme.sh/account.conf 文件的配置)
3、最后,重点来了,通配符证书申请命令(以我自己的域名为例):
阿里云使用以下命令:
~/.acme.sh/acme.sh --issue -d test.cn -d *.test.cn --dns dns_ali
腾讯云使用以下命令:
acme.sh --issue --dns dns_dp -d test.cn-d *.test.cn
注意,这里–dns参数使用的是dns_ali,告诉acme.sh使用阿里云的DNS接口去自动验证。(好处:全程无干预,不需要暂停web服务器!)

4、查看生成的证书文件,证书默认生成在:~/.acme.sh/test.cn下:

5、证书的安装
注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件,
例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件.
这里面的文件都是内部使用, 而且目录结构可能会变化.
正确的使用方法是使用 --installcert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置,
默认情况下,证书将每60天更新一次(可配置)。更新证书后,将通过以下命令自动重新加载Apache / Nginx服务:service apache2 force-reload或service nginx force-reload。
请注意:reloadcmd非常重要。证书可以自动续订,但是,如果没有正确的“reloadcmd”,证书可能无法刷新到您的服务器(如nginx或apache),那么您的网站将无法在60天内显示续订证书。
阿里云使用以下命令:
# 创建放置证书的文件夹
mkdir -p /usr/local/nginx/ssl_cert/test.cn # 前面证书生成以后,,需要把证书 copy 到真正需要用它的地方。
acme.sh --install-cert -d test.cn -d *.test.cn \
--key-file /usr/local/nginx/ssl_cert/test.cn/test.cn.key \
--fullchain-file /usr/local/nginx/ssl_cert/test.cn/test.cn.cer \
--reloadcmd "service nginx force-reload"
腾讯云使用以下命令:
# 创建放置证书的文件夹
mkdir -p /usr/local/nginx/ssl_cert/test.cn
# 前面证书生成以后,,需要把证书 copy 到真正需要用它的地方。
acme.sh --install-cert -d test.cn --key-file /usr/local/nginx/ssl_cert/test.cn/test.cn.key --fullchain-file /usr/local/nginx/ssl_cert/test.cn/test.cn.cer --reloadcmd "/usr/local/nginx/sbin/nginx -s reload"

6.Nginx 配置Http和Https共存
listen 80; #如果硬性要求全部走https协议,这一行去除
listen 443 ssl http2; #如果硬性要求全部走https协议,这里去除ssl
server_name chandao.test.cn; #ssl on; #如果硬性要求全部走https协议,这里开启ssl on
ssl_certificate /usr/local/nginx/ssl_cert/test.cn/test.cn.cer;
ssl_certificate_key /usr/local/nginx/ssl_cert/test.cn/test.cn.key; #ssl性能调优
#nginx 1.13.0支持了TLSv1.3,TLSv1.3相比之前的TLSv1.2、TLSv1.1等性能大幅提升
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
#使用ssl_session_cache优化https下Nginx的性能
ssl_session_cache builtin:1000 shared:SSL:10m;
#OCSP Stapling 开启。OCSP是用于在线查询证书吊销情况的服务,使用OCSP Stapling能将证书有效状态的信息缓存到服务器,提高 TLS 握手速度
ssl_stapling on;
#OCSP Stapling 验证开启
ssl_stapling_verify on;
使用nginx -t 查看是否出错,然后重启nginx
nginx -t
service nginx reload
7、查看证书列表
acme.sh --list
8、删除证书【创建https失败,可删除证书重试】
acme.sh remove Main_Domain(证书的主域名,上述证书列表中可看见)
转载于:https://blog.csdn.net/weixin_30911809/article/details/96166225
Let’s Encrypt 通配符证书,泛域名证书申请配置的更多相关文章
- CentOS 7配置Let’s Encrypt支持免费泛域名证书
Let’s Encrypt从2018年开始支持泛域名证书,有效期3个月,目前仅支持acme方式申请,暂不支持certbot. 1.安装acme.sh curl https://get.acme.sh ...
- let's encrypt部署免费泛域名证书
环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhos ...
- 使用 acme.sh 签发续签 Let‘s Encrypt 证书 泛域名证书
1. 安装 acme.sh 安装很简单, 一个命令: curl https://get.acme.sh | sh 并创建 一个 bash 的 alias, 方便你的使用 alias acme.sh=~ ...
- Let's Encrypt免费泛域名证书申请
一. 下载acme.sh,以下四条命令任选一条即可 curl https://get.acme.sh | shwget -O - https://get.acme.sh | sh curl https ...
- Let's encrypt申请泛域名证书以及报错处理
申请泛域名证书的步骤请参考该链接地址: https://www.jianshu.com/p/df6d13187578 报错信息: No matching distribution found for ...
- acme.sh建立SAN证书 和泛域名证书
文件来源 https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert domain=$domain time=`date +%Y%m%d% ...
- 申请 Let’s Encrypt 泛域名证书 及 Nginx/Apache 证书配置
什么是 Let’s Encrypt? 部署 HTTPS 网站的时候需要证书,证书由 CA (Certificate Authority )机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于 ...
- Let's encrypt申请泛域名证书
1.下载工具 wget https://dl.eff.org/certbot-auto chmod a+x ./certbot-auto 2.初始化 ./certbot-auto 3.获取证书(1) ...
- 基于Let's Encrypt生成免费证书-支持多域名泛域名证书
目录 客户端 certbot acme.sh 安装acme.sh 1. 自动安装 2. 手动安装 3. 测试收否安装成功 使用acme.sh生成证书 1. HTTP 方式 2. DNS 方式 1. 生 ...
随机推荐
- Combiner-Reduce之前处理过程
简介 Combiner是Mapper和Reducer之外的组件. Combiner是在Reducer运行之前,对Mapper数据进行处理的. Wordcount实例 WordCountMapper p ...
- Intellij IDEA新导入项目运行出现Error:(60, 47) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
后台窗口报错如下: 问题原因 项目jdk版本配置不正确. 解决方案 ①File ->Project Structure ② ③之后还要检查一下这里 Settings-->Build,Exe ...
- css3(::before)伪元素的使用
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset=" ...
- WPF页面刷新
WPF页面刷新: 在WPF项目中,类的属性变了,但界面值没有变,且我们也没有对类的属性做PropertyChanged的set处理. 如何实现呢? 首先我们需要实现一个INotifyPropertyC ...
- 落谷 P1412 经营与开发
题目链接 Solution 用传统的思想考虑正推,发现后面的答案依赖于当前的 \(p\),你不但要记录前 \(i\) 个还要记录 \(p\),显然空间爆炸. 类似 AcWing 300. 任务安排1, ...
- MySQL技术内幕InnoDB存储引擎(一)——MySQL体系结构和存储引擎
1.数据库和实例 数据库(database)和实例(instance)不能混淆. 什么是数据库 数据库是物理操作系统文件或其他文件类型的集合.说白了,就是存储着的文件,不会运行起来,只能被实例增删改查 ...
- 深入理解Java虚拟机(七)——类文件结构
Java的无关性 由于计算机领域中有很多操作系统和硬件平台同时在竞争,所以,很多编程语言的程序设计会与其运行的平台和操作系统产生耦合,这样就大大增加了程序员的工作,为了适应不同的平台,需要修改很多代码 ...
- 使用docker与宿主机文件互相拷贝
1.从容器里面拷文件到宿主机 示例:容器名为s2-061_struts2_1,要从容器里面拷贝的文件路为:/usr/local/tomcat/webapps/test/js/test.js, 现在要将 ...
- JavaSE22-Lambda表达式&方法引用
1.Lambda表达式 1.1 Lambda表达式的标准格式 1 (形式参数) -> {代码块} 形式参数:如果有多个参数,参数之间用逗号隔开:如果没有参数,留空即可 ->:由英文中画线和 ...
- Hadoop核心-HDFS
上一篇我们熟悉了hadoop,本篇讲解一下hadoop第一个核心HDFS. 一.概述 HDFS是一个分布式文件存储系统,以流式数据访问模式存储超大文件,将数据分块存储到一个商业硬件集群内的不同机器上, ...