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(证书的主域名,上述证书列表中可看见)
注意:
若申请的CDN证书匹配的网站地址属于泛域名,如类似*.abc.com的证书,只能支持通配符当前级别的域名,如a.abc.com、b.abc.com或abc.com的域名,目前还无法支持三级域名(如x.a.abc.com),这个限制是证书颁发机构与浏览器之前的限制。
解决办法:若您需要使用三级域名,那么就需要使用对应的二级域名的泛域名,如*.cdn.abc.com,就可以支持形如1.cdn.abc.com、2.cdn.abc.com。
Let’s Encrypt 通配符证书申请配置的更多相关文章
- Let’s Encrypt 通配符证书,泛域名证书申请配置
首先你可以查看下官方提供的支持申请通配符证书的客户端列表:https://letsencrypt.org/docs/client-options/. 参考链接:https://github.com/N ...
- 使用免费的Let's Encrypt通配符证书 升级我们的网站
Let's Encrypt通配符证书的官方启用日期:2018年3月13日 也就是说,2018年3月13日之后,我们就可以使用Let's Encrypt通配符证书了,当然是免费的. Let's Encr ...
- Let's Encrypt SSL证书申请
当前环境: 阿里云CoreOS 所绑定的域名,解析管理也在阿里这儿,在该文档中使用 example.com 作为示例. Docker 镜像 acme.sh:2.8.8 nginx 申请证书并使用 使用 ...
- ZeroSSL,支持多域名的在线 Let's Encrypt SSL 证书申请工具
前言: 微信需要ssl证书,很多网站都有免费一年的证书:免费一年的证书叫做单域名证书,iis没办法配置多个子站点443端口:我有很多客户需要用我的的域名,同一个域名配置多个ssl,或者支持多个子域名: ...
- Ubuntu里let's encrypt通配符证书的自动续期更新
环境与需求: Ubuntu云服务器上,已经做好了ssl证书的免费申请,但是证书的期限是3个月,3个月到期后必须重新申请或者更新.由于k8s集群里的服务一直在使用证书,每三个月人工更新太麻烦,所以想要配 ...
- Windows Ubuntu Bash申请免费通配符证书(Let's Encrypt)并绑定IIS
什么是 Let’s Encrypt? 部署 HTTPS 网站的时候需要证书,证书由 CA 机构签发,大部分传统 CA 机构签发证书是需要收费的,这不利于推动 HTTPS 协议的使用. Let’s En ...
- Let's Encrypt 免费通配符 SSL 证书申请教程——但是也需要email,域名所有权等,如果是黑产用的话会这样用吗?会不会暴露自己身份???
Let's Encrypt 免费通配符 SSL 证书申请教程 from:https://blog.csdn.net/English0523/article/details/79608464 2018 ...
- 申请免费通配符证书(Let's Encrypt)并绑定IIS
申请免费通配符证书(Let's Encrypt)并绑定IIS 2018-05-25 18:01 by Giant Liu, 800 阅读, 4 评论, 收藏, 编辑 什么是 Let’s Encrypt ...
- 申请免费通配符证书(Let's Encrypt)并绑定IIS(转载)
本文转载自https://blog.csdn.net/qq_41608008/article/details/80491447 什么是 Let's Encrypt? 部署 HTTPS 网站的时候需要证 ...
随机推荐
- 泡泡一分钟: Deep-LK for Efficient Adaptive Object Tracking
Deep-LK for Efficient Adaptive Object Tracking "链接:https://pan.baidu.com/s/1Hn-CVgiR7WV0jvaYBv5 ...
- Java 通过getbean取出的类为什么要强转为接口类
这个问题是之前一个同学问我的,这些是我在网上找到的资料,由于我自己也没有完全搞明白,先大概记录一下 首先问题是为什么在bean文件中注入的是实现类,但是通过getBean()取出的时候却必须强制转化为 ...
- Good Introduction of Kerberos and RADIUS
1. RADIUS https://baike.baidu.com/item/RADIUS/3073981?fr=aladdin http://www.h3c.com/cn/d_201309/9220 ...
- VUE错误码Attribute ':sizeOpts' must be hyphenated
Attribute ':sizeOpts' must be hyphenated 因为属性有大写,需要添加 - 来取代 例如 tampData 换成 tamp-data 就可以了
- Holt-Winters
https://blog.csdn.net/u010665216/article/details/78051192 mark
- kubernetes in action - Services
问题,如何将Pod所提供的功能提供给别人用?微服务,是服务,所以关键要把服务提供出去 直接把pod的静态ip提供给用户用,这个会有很多问题,比如failover,扩容,负载均衡等 所以需要servic ...
- group by 用法解析
group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子 ...
- javascript的ES6学习总结(第二部分)
1.数组循环 介绍数组循环之前,先回顾一下ES5数组的循环 (1)数组遍历(代替普通的for):arr.forEach(callback(val,index,arr){todo}) //val是数组的 ...
- Modelsimobjects空白无显示问题和ISim仿真时出现空白
困扰朕长达一周的问题得以解决!!!!! 发生这种情况的根源是win10自带的防火墙的问题.只有关闭防火墙,再重新打开软件进行仿真就能出现正常的仿真界面. 关闭防火墙的方法为:控制面板>>系 ...
- .NET Core 事件总线,分布式事务解决方案:CAP 基于Kafka
背景 相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中也会遇到分布式事务的问题,那么 CAP 就是在这样的背景 ...