利用 ACME 实现SSL证书自动化配置更新
最近收到腾讯云的通知SSL证书要到期了,本想直接申请的发现现在申请的免费SSL证书有效期只有90天了,顺便了解了一下原因是包括Google在内的国际顶级科技公司一直都有在推进免费证书90天有效期的建议,免费证书加密等级低,难以应对今天日益复杂的网络环境,90天一更新有助于及时发现可能存在的安全漏洞,从而降低风险。这本意是好的但是苦了我们这些的IT 人了,不过好在有自动化的SSL证书更新神器
acme,可以一键申请SSL证书,到期也会自动更新,省去了很多麻烦。
安装acme
首先下载安装 acme,后面的 email修改为自己的用于收取SSL证书相关的消息,acme 默认会安装在~/.acme.sh/目录下。
curl https://get.acme.sh | sh -s email=mymail@mail.com
修改SSL证书服务商
默认SSL 证书服务商为 ZeroSSL,申请过程比较容易出错建议修改为letsencrypt,
acme.sh --set-default-ca --server letsencrypt
证书申请
证书申请过程需要一个域名验证操作,acme 支持两种验证方式:http 验证和 dns 验证,这里我们采用 dns 验证方式,dns 验证可以手动添加CNAME记录也可以通过 dns 厂商提供的 api 进行添加,后者更方便一下,提供 dns 服务的厂商也很多这里以 dnspod 为例进行说明。
申请DNSAPI
登录 DNSPod通过 API 密钥创建 DNSPod Token,密钥创建后要保存好后续无法查询。

配置DNSAPI
将上一步申请的DNSPod Token的 ID 和 Token导入到环境变量中
export DP_Id="511111"
export DP_Key="2d111111111"
执行申请操作
使用issue命令申请证书, 参数-d 用户指定要申请证书的域名,*.domain.cn是泛域名,domain.cn是根域名,test.domain.cn是单域名,此处需要注意要确定前面指定的SSL证书服务商是否支持申请泛域名,如果不支持就需要多次重复此步操作申请多个 SSL 证书,letsencrypt支持申请泛域名证书;参数 dns 用于指定 dns 服务厂商,执行器需要需要确保上一步的环境变量已经正确导入,可以检查~/.acme.sh/目录下的account.conf文件内容进行确认;命令执行后会通过dnsapi 自动添加CNAME记录并进行验证,验证通过后会在~/.acme.sh/domain.cn 目录生成申请好的证书。
申请过程请关注输出信息,存在异常时可以通过添加--debug参数输出更多信息以便排查。
acme.sh --issue -d domain.cn -d *.domain.cn --dns dns_dp
证书安装
证书申请成功还需要安装到对应的位置,需要使用--install-cert命令,这里以 nginx 为例进行说明,-d 参数指定域名,需要和安装的证书文件一一对应,--key-file指定证书私钥的安装位置,--fullchain-file指定证书文件的安装位置,--reloadcmd指定证书文件安装完成应用的重启命令,执行成功会提示 success,可以通过访问自己的域名进行验证,同时命令为添加一条自动化任务"/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null用于定时自动更新 SSL 证书,可以通过crontab -l命令查看。
acme.sh --install-cert -d domain.cn \
--key-file /usr/local/nginx/conf/cert/domain.cn.key \
--fullchain-file /usr/local/nginx/conf/cert/domain.cn.cer \
--reloadcmd "/usr/local/nginx/sbin/nginx -s reload"
相关网址
利用 ACME 实现SSL证书自动化配置更新的更多相关文章
- centos7利用acme.sh获取Let's Encrypt的永久免费ssl证书并配置网站域名https访问
acme.sh介绍:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E github:https://github.com/Neil ...
- 腾讯云中ssL证书的配置安装
https://cloud.tencent.com/document/product/619/12797 配置 Nginx 和 HTTPS 完成以上准备工作,就要开始配置 Nginx 和 HTTPS ...
- goDaddy SSL证书 Nginx配置全流程 (转)
好长时间没动过这玩意了,今天突然用到,忘的一干二净.在此做个笔记吧! 一.购买Godaddy SSL证书 1.打开Godaddy官网 http://www.godaddy.com/: 2.点击网站导航 ...
- 【转】七牛免费SSL证书,配置自定义域名CDN加速
原文链接:https://excaliburhan.com/post/use-qiniu-ssl-and-cdn.html 申请七牛SSL证书 其实,七牛在很早之前就支持CDN使用https,但是他要 ...
- oneinstack如何安装ssl证书和配置Let's Encrypt免费SSL证书教程汇总(转)
OneinStack包含以下组合:lnmp(Linux + Nginx+ MySQL+ PHP) LNMP安装SSL安全证书 部署HTTPS:https://www.gworg.com/ssl/309 ...
- 阿里云SSL证书tomcat配置
1. SSL证书申请 登录阿里云控制台,查看购买域名中有SSL证书的申请,ssl证书申请中有单域名的申请,配置要申请的域名信息(注意:一个域名下,一次只能添加一个证书,最多申请3个免费证书用于测试), ...
- centOS7 apache ssl证书安装配置
背景说明:服务器是centOS7.4 七牛申请的免费ssl证书 默认apache是没有安装SSL模块的,所以需要安装,接着使用命令: yum install -y mod_ssl apache目录 / ...
- letsencrypt 免费SSL证书申请, 自动更新
Let's Encrypt 泛域名 证书申请 及自动更新 关键字:SSL证书.HTTPS 初次申请 1. 下载certbot wget https://dl.eff.org/certbot-auto ...
- nginx ssl证书安装配置
原理图: - 客户端生成一个随机数 random-client,传到服务器端(Say Hello) - 服务器端生成一个随机数 random-server,和着公钥,一起回馈给客户端(I got it ...
- Tomcat SSL证书安装配置
[From Internet] 首先找到安装Tomcat 目录下该文件“Server.xml”,一般默认路径都是在Conf 文件夹中.然后用文本编辑器打开该文件,接着找到 <Connector ...
随机推荐
- FindBugs质量管理
1. FindBugs是什么 FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序的情况对软件进行 ...
- adb对安卓app进行抓包(ip连接设备)
adb对安卓app进行抓包(ip连接设备) 一,首先将安卓设备的开发者模式打开,提示允许adb调试 二,自己的笔记本要和安卓设备在同一个网段下(同连一个WiFi就可以了) 三,在笔记本上根据ip来连接 ...
- 【NodeJS】操作MySQL
1.在连接的数据库中准备测试操作的表: CREATE TABLE `user` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` ...
- 【Java】SonarLint 疑难语法修正
规范驼峰命名使用: 提示信息 Local variable and method parameter names should comply with a naming convention 代码片段 ...
- Http、Https简介和Session、token的请求流程
Http Http (超文本输出协议) 是一种分布式.协作式和超媒体信息系统的应用层协议,它通常运行在TCP之上,因特网应用最广泛的便是Http协议,所有www都遵循这个标准.主要用于Web 浏览器与 ...
- P6764 [APIO2020] 粉刷墙壁
思路: 本质上能进行的操作就是我们算出从第 \(i\) 块砖开始,连续刷 \(M\) 块砖,是否有承包商可以刷出期望颜色. 那么设 \(f_i\) 表示 \([i,i+m-1]\) 是否合法,那么就变 ...
- 人形机器人从人类演示(demenstration)数据中学习人类行为(behavior)的几种方式
人形机器人从人类演示(demenstration)数据中学习的几种方式 使用仿真环境,在仿真环境中生成近似人类的行为数据,然后利用仿真生成的数据训练机器人. 该种方式最为传统,也最为易行,但是由于仿真 ...
- python语言下的迷宫游戏的实现猜想
由于本人是研究AI的,尤其是AI的强化学习方向,有时候就会对一些小游戏环境的实现有几分兴趣,因为刚看了有关reinforcement learning解决maze游戏的论文,于是就突发奇想的对这个ma ...
- 《Python数据可视化之matplotlib实践》 源码 第四篇 扩展 第十一章
图 11.2 import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np plt.axes([0.1, ...
- reinforcement learning常用的游戏环境,gym框架使用的标准Atari游戏集合
reinforcement learning常用的游戏环境,gym框架使用的标准Atari游戏集合.*.bin文件为Atari2600游戏的常用游戏环境的模拟文件,也称为roms文件. 文件地址: h ...