acme+cloudflare生成免费证书(自动续期)
acme DNSapi
acme DNSapi的作用是在申请证书时使用dns交易,acme可以通过dnsapi在对应的dns管理平台提交对应的dns记录。玩过证书的朋友都知道,证书申请时有三种验证方式
- 邮箱验证:需要邮箱与域名绑定(细节要求我没试过)
- 文件验证:文件验证时证书管理方会要求你在服务器的指定路径上方一个指定文件(内容也是他们定),然后开发80端口,他们会去下载这个文件从而验证你的身份。申请域名时你需要去你的服务器上操作,还有开放指定端口
- DNS验证:DNS验证只需要你在dns记录上添加一条TXT记录就可以
我们这里用到的就是DNS验证,DNS验证虽然方便,但是每次申请都需要添加一条DNS记录(申请完成后可以删除,acme好像自动帮忙删除了),如果要实现自动化,acme需要有权限向dns记录方提交记录。
cloudflare DNSapi
根据上面的文档可以看到cloudflare dns api 有两种方式获取
- 生成cloudflare的全局token(全局token拥有cloudflare的所有权限,大部分是acme用不到的)
- 生成cloudflare的DNS权限token(推荐,够acme用的了)
生成cloudflare的DNS权限token
先来cloudflare的Api申请页面

点击这里的创建令牌
选择编辑区域DNS 这个模板(一般来说是第一个)

安装下面的内容填写

权限选 区域 -> DNS -> 编辑
区域资源 包括 -> 特定区域 -> 在下拉列表里选你的域名(你也可以在第二个框里面选择所有区域)
剩下都不变,点继续,跳转到这个页面

点击生成令牌,就会产生一个令牌,令牌生成后第一时间记录下来,这个令牌只显示一次,刷新页面后就看不到了
获取cloudflare的用户信息
点到cloudflare中对应的网页管理页面,在api的地方可以看到两个api key

现在我们有三个信息
- 上面生成的一个管理DNS的TOKEN
- 这里的区域ID
- 这里的账户ID
在对应服务器上生成证书
设置环境变量
export CF_Token="填DNS token"
export CF_Zone_ID="填区域ID"
export CF_Account_ID="填账户ID"
安装acme
apt update -y #更新系统
apt install -y curl #安装curl
apt install -y socat #安装socat
curl https://get.acme.sh | sh
生成证书
acme.sh --issue --dns dns_cf -d test.fun -d "*.test.fun"
如果说找不到acme.sh,可以使用下面的命令
~/.acme.sh/acme.sh --issue --dns dns_cf -d test.fun -d "*.test.fun"
等他跑码跑完会告诉你证书的位置

关键是上面两行your cert your cert key
上面生成的证书是 *.test.fun 的证书,所有的以test.fun结尾的域名都可以用这个证书
推荐使用: 因为acme正常2个月会自动更新一下证书,所以我不推荐你把证书移动到别的位置,因为acme下次生成的时候还会放在这个位置,要么你指定acme的证书生成路径,可以用
acme.sh --help查看怎么指定路径。我使用的方法是(有两个)
直接使用这个路径
通过软连接把证书链接过去
比如我要把证书放在/etc/nginx/ssl 里面 分别命名为
cert.crtpriv.key我可以这样做cd /etc/naginx/ssl
ln -s /home/ivhu/.acme.sh/证书路径.cer cert.crt
ln -s /home/ivhu/acme.sh/证书私钥.key priv.key
证书生成后一般会新建一个cron 的定时认为用来维护证书保证期
可以通过 crontab -e命令查看,我的结果是这样的:

意思是每天凌晨3:28会检查一下证书
如果你的证书是给nginx用的可以在root下运行crontab -e 编辑root的cron自动化命令
添加如下:
0 4 * * * systemctl reload nginx
表示每天4:00 重启nginx ,因为nginx的证书需要重启之后才能重载
acme+cloudflare生成免费证书(自动续期)的更多相关文章
- 使用openssl 生成免费证书
阅读目录 一:什么是openssl? 它的作用是?应用场景是什么? 二:使用openssl生成免费证书 回到顶部 一:什么是openssl? 它的作用是?应用场景是什么? 即百度百科说:openssl ...
- openssl 生成免费证书
原文链接:https://www.cnblogs.com/tugenhua0707/p/10927722.html 一:什么是openssl? 它的作用是?应用场景是什么? 即百度百科说:openss ...
- [转]部署Let’s Encrypt免费SSL证书&&自动续期
最近公司网站要用https,从自己摸索到找到国内的免费证书到选购正式的收费证书,最后老板说:太贵!不要.一脸懵逼的听老板提到Let's Encrypt证书,没办法,用呗.之前是有一些了解,国外发布的一 ...
- 基于Let's Encrypt生成免费证书-支持多域名泛域名证书
目录 客户端 certbot acme.sh 安装acme.sh 1. 自动安装 2. 手动安装 3. 测试收否安装成功 使用acme.sh生成证书 1. HTTP 方式 2. DNS 方式 1. 生 ...
- 使用acme.sh申请&自动续期LetsEncrypt免费SSL证书(转)
一.简介 LetsEncrypt是一个免费.自动.开放的证书颁发机构.acme.sh 实现了 acme 协议, 可以从 LetsEncrypt 生成免费的证书. 本文介绍如何使用acme.sh来签发并 ...
- 让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt
让网站永久拥有HTTPS - 申请免费SSL证书并自动续期 Let’s Encrypt 为什么要用HTTPS 网站没有使用HTTPS的时候,浏览器一般会报不安全,而且在别人访问这个网站的时候,很有可 ...
- 免费生成https证书以及配置
http升级到https需要在nginx的配置中加入证书信息,查询资料后确定生成证书两种方案 第一种:自签名证书,然后开启 CloudFlare 的 CDN 服务 //确定是否安装openss ...
- 使用Let's Encrypt 生成免费的ssl证书的详细过程
参考连接:https://github.com/diafygi/acme-tiny 中文:https://hacpai.com/article/1487899289204 目前我了解可以生成免费证书的 ...
- 怎样查看SSL证书的有效期?自动续期是否生效?
前面一篇教程教大家如何能够把网站的 HTTPS 的 SSL 证书自动续期.料神米课的学员动手能力都很强,已经很多都成功把证书续期了.但怎么看证书续期是否成功了呢? 使用火狐 firefox 浏览器就可 ...
- 从零到一快速搭建个人博客网站(域名备案 + https免费证书)(一)
环境介绍 资源 说明 centos v7.2 docker 快速部署项目环境 nginx 反向代理,同时配置https证书 halo v1.4.2,开源博客项目 Let's Encrypt 免费证书 ...
随机推荐
- Python 华为云OSS建桶与文件上传下载删除及检索示例
华为云OSS建桶与文件上传下载删除及检索示例 实践环境 运行环境: Python 3.5.4 CentOS Linux release 7.4.1708 (Core)/Win10 需要安装以下类库: ...
- 关于Script的猜想和代码设计
由于现在接触的是蓝图,而之前接触的脚本,这两者有些不一样. 对脚本的设计如果是代码的解析的话, 对蓝图的设计则需要提供一些底层的API. 变量分为: 基础类型 ,复合类型 ,容器类型 NewGlob ...
- mybatis源码配置文件解析之五:解析mappers标签(解析class属性)
在上篇文章中分析了mybatis解析mapper标签中的resource.url属性的过程,<mybatis源码配置文件解析之五:解析mappers标签(解析XML映射文件)>.通过分析可 ...
- Linux下搭建Elasticsearch7.6.2集群
使用VMvare创建虚拟机 我的创建的三台分别是: 192.168.115.129 node-1 192.168.115.130 node-2 192.168.115.131 node-3 注意:克隆 ...
- Jmeter函数助手18-machineIP
machineIP函数用于获取本地IP地址. 存储结果的变量名(可选) 1.本地ip可以在cmd运行界面输入命令"ipconfig"查看,Jmeter则使用函数获取${__mach ...
- 【郝斌C ST】 指针入门
#include <stdio.h> int main() { printf("Hello, World!\n"); int i = 3; int * p = & ...
- 【Server - 运维】更改腾讯云数据库参数设置
购买的MySQL实例是一个屏蔽了后台设置的服务器: 默认大小写设置是使用严格区分的: 要设置忽略大小写,就要在my.cnf中更改配置参数 https://cloud.tencent.com/devel ...
- 【转载】 浅谈PyTorch的可重复性问题(如何使实验结果可复现)
原文地址: https://www.zhangshengrong.com/p/9MNlDK09NJ/ ================================================ ...
- 【转载】 NFS服务器端的权限设置学习 Linux运维学习
原文地址: http://blog.chinaunix.net/uid-31484238-id-5785140.html ======================================= ...
- 键盘中上、下、左、右四个光标键所对应的ASCII码值为多少
首先给出ASCII码值表: 上.下.左.右这四个光标键对应的ASCII码值不是一个值而是三个,准确的说光标键的ASCII码值是一个组合. 每个方向键所对应的三个键值为:0x1b + 0x5b + n ...