acmev2怎么用_lua-resty-acme: ACMEv2 客户端和 Let's Encrypt 证书的自动化管理
相比于现有实现,不需要安装任何第三方程序或者 C 扩展,所有依赖均为 Lua 和 FFI 实现。
安装
使用 opm:
opm install fffonion/lua-resty-acme
opm 中没有 luaossl 库,所以这种安装使用的是基于 FFI 的 Openssl 后端;需要 OpenResty 链接了大于等于 1.1 版本的 OpenSSL。
如果有完整的编译工具链,可以使用 luarocks 安装,需要安装 OpenSSL 的头文件:
luarocks install lua-resty-acme
使用
以 /etc/openresty 目录为例,如果目录不存在,请自行修改。
生成一个账户密钥
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out /etc/openresty/account.key
生成一个默认证书
openssl req -newkey rsa:2048 -nodes -keyout /etc/openresty/default.pem -x509 -days 365 -out /etc/openresty/default.key
在 Nginx 配置的 http 节插入以下内容
resolver 8.8.8.8;
lua_shared_dict acme 16m;
lua_shared_dict autossl_events 128k;
init_by_lua_block {
require("resty.acme.autossl").init({
-- setting the following to true
-- implies that you read and accepted https://letsencrypt.org/repository/
tos_accepted = true,
-- uncomment following for first time setup
-- staging = true,
-- uncomment folloing to enable RSA + ECC double cert
-- domain_key_types = { 'rsa', 'ecc' },
account_key_path = "/etc/openresty/account.key",
account_email = "此处填写邮箱",
})
}
init_worker_by_lua_block {
require("resty.acme.autossl").init_worker()
}
# required to verify Let's Encrypt API
lua_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
lua_ssl_verify_depth 2;
CentOS/Fedora 等系统的根证书在 /etc/ssl/certs/ca-bundle.crt ,请根据实际情况修改 lua_ssl_trusted_certificate。
首次配置时,建议将 init_by_lua_block 中的 staing = true 取消注释,以防错误过多触发限流;测试通过后再加回注释使用生产 API。
在需要使用证书的 server 节插入
server {
server_name example.com;
# fallback certs, make sure to create them before hand
ssl_certificate /etc/openresty/default.pem;
ssl_certificate_key /etc/openresty/default.key;
ssl_certificate_by_lua_block {
require("resty.acme.autossl").ssl_certificate()
}
location /.well-known {
content_by_lua_block {
require("resty.acme.autossl").serve_http_challenge()
}
}
}
配置完成后,reload nginx。
福利:
# RSA
echo q |openssl s_client -connect 随机子域名.acme.yooooo.us -port 8443 -cipher ECDHE-RSA-AES128-GCM-SHA256|openssl x509 -noout -text|grep -P "Public Key Algorithm|After"
# ECC
echo q |openssl s_client -connect 随机子域名.acme.yooooo.us -port 8443 -cipher ECDHE-ECDSA-AES128-GCM-SHA256|openssl x509 -noout -text|grep -P "Public Key Algorithm|After"
首次请求后等 10 秒钟,即可收到新证书加密的链接
欢迎讨论和提供建议!
acmev2怎么用_lua-resty-acme: ACMEv2 客户端和 Let's Encrypt 证书的自动化管理相关推荐
- GDC服务器主机与证书不匹配,调用web服务soap时,错误https URL主机名与客户端信任库中服务器证书上的公用名(CN)不匹配...
嘿,我想用SAAJ调用soap web服务 我用野蝇10 我试图将此系统属性添加到standalone.xml,但无法工作 20: 53:08208错误[stderr](默认任务-21),原因是:ja ...
- 使用 acme.sh 生成免费的泛域名证书
原文发布在 不二博客 在 使用 acme.sh 为网站生成永久免费证书 一文中介绍了如何安装 acme.sh 以及如何生成证书,这篇文章就来说一说如何使用 acme.sh 来生成泛域名证书,即主域名和 ...
- 群晖使用acme自动申请Let‘s Encrypt证书脚本
前言 最近做数据迁移,准备把一些自建服务都迁移到群晖上,但群晖自带的Let's Encrypt证书申请总是提示:命令运行失败,请重新登陆DSM再试一次 按提示多次尝试未果,没办法,那就自己动手吧. 说 ...
- 威联通QNAP使用acme.sh工具自动续签到期SSL证书
文章目录 一.acme.sh工具介绍 二.部署准备 三.acme.sh安装 四.Shell脚本 五.Crontab定时任务 [高能!]部署坑点 威联通原先系统是自带Let's Encrypt SSL免 ...
- 使用 acme.sh 为网站生成永久免费证书
原文发布在 不二博客 HTTP 2.0 时代几乎所有的网站都是 https 访问方式了,想要实现 https 访问,安全证书就是绕不过去的坎,域名服务商一般都会提供了免费证书注册,网上也可以搜索很多, ...
- Rocky(Centos)使用acme.sh申请安装Let‘s Encrypt泛域名ECC证书(阿里DNS)
现代的浏览器开始有将 https 访问作为默认访问方式的倾向,因此需要将网站配置为https 访问. Let's Encrypt 组织提供免费的 TLS 加密证书,用于协助web服务器实现https协 ...
- linux与python客户端,《使用python进行unix和linux管理》§5网络 §5.1 网络客户端
§5网络 2009-9-13 磁针石:xurongzhong#gmail.com §5.1网络客户端 §5.1.1 socket # python Python 2.6.2 (r262:71600, ...
- asp.net session 如何知道是哪个浏览器客户端_微服务下的分布式session管理
享学课堂特邀作者:老顾转载请声明出处! 前言 今天老顾带着大家了解一下session会话在微服务架构中采用的技术方案,以及 企业应用中需要注意的问题. session作用 我们知道在web应用中,we ...
- acme.sh签发Let‘s Encrypt证书
1.安装acme.sh curl https://get.acme.sh | sh 2.手动 dns 方式, 手动在域名上添加一条 txt 解析记录, 验证域名所有权 这种方式的好处是, 你不需要任何 ...
最新文章
- 脑电分析系列[MNE-Python-2]| MNE中数据结构Epoch及其创建方法
- ARP协议抓包分析 -- wireshark
- Splash 渲染引擎简介
- Redis缓存击穿和缓存雪崩、缓存穿透以及对应的解决方案
- IT架构的本质:工作12年,我的五点感悟
- 用面粉和醋洗头 让你的头发黑亮又浓密
- 浏览器访问pdf 的url怎么加密_怎么解决加密的pdf文件?
- 蜂鸟笔记本swift接口_蜂鸟Swift 5可清新文艺、又可尊贵典雅
- php 上传文件 例子,php上传文件实例
- 洛谷P3195 [HNOI2008]玩具装箱TOY——斜率优化DP
- termux安装java,android下的termux模拟器安装openJDK和运行springboot项目
- 零基础怎么学习平面设计
- 2022年AI领域有哪些重要突破?(附报告全文)
- UDS的19 04读取快照信息解析
- 【Python】Decision on buying cars COROLLA or LEVIN(数据分析技术实现过程之·2 data_analysis①)
- 固态硬盘,机械硬盘,交换内存,虚拟内存,物理内存,这些你要知道!!
- python 使用smtp发送群邮件
- Java Entry类详解
- 机械臂操作运动传送带上的物体
- ASEMI二极管A7参数,A7二极管规格书,A7二极管的封装
热门文章
- Java GUI编写一个简单的抽奖机
- 数学学习在计算机研究领域的作用和重要性
- C/S和B/S平滑模糊的时代----推荐:云计算时代的生命周期(吕建伟)
- 苹果电脑 开机密码 忘记了, 黑苹果系统
- Android开发--WIFI输入密码Dialog的实现
- mysql集群 MySQL Cluster
- 机器学习中【回归算法】详解
- zedboard运行linux,(转载)一步一步学ZedBoard Zynq(六):在ZedBoard上运行linux并编写linux下的应用程序HelloWorld...
- golang语言 []interface{}和interface{}
- 姓氏头像框一键制作小程序源码