当前位置: 首页 > news >正文

通过acme生成与续签ssl证书,并部署到nginx

通过acme生成与续签ssl证书,并部署到nginx

介绍

官方介绍: acme.sh 实现了 acme 协议,可以从 ZeroSSLLet's Encrypt 等 CA 生成免费的证书。

安装 acme.sh

1. curl方式
curl https://get.acme.sh | sh -s email=my@example.com
2. wget方式
wget -O -  https://get.acme.sh | sh -s email=my@example.com
3. 国内方式安装
# 如果你的安装服务器位于中国大陆境内, 访问 github 可能会不成功. 所以安装可能会失败.
# 因此可以访问acme gitee ,地址为:https://github.com/acmesh-official/acme.sh/wiki/Install-in-China
# 安装方法如下:
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com

刷新环境变量

source ~/.bashrc

生成证书

官方介绍摘抄: 如果使用手动验证,acme.sh 将无法自动更新证书,每次都需要手动添加解析来验证域名所有权。如果有自动更新证书的需求,请使用自动验证(DNS API)。 DNS 方式的真正强大之处在于可以使用域名解析商提供的 API 自动添加 TXT 记录,且在完成验证后删除对应的记录。acme.sh 目前支持超过一百家的 DNS API。

因此,本文采用DNS API验证来生成证书。

阿里云(万网)设置

设置Ali_Key与Ali_Secret

export Ali_Key="<key>"
export Ali_Secret="<secret>"

签发通配符证书

./acme.sh --issue --dns dns_ali -d example.com -d *.example.com
其他厂商
# 支持国内常见的华为云,腾讯云等。
# 详见官方文档:https://github.com/acmesh-official/acme.sh/wiki/dnsapi#dns_ali

复制证书

Nginx 示例
acme.sh --install-cert -d example.com \
--key-file       /path/to/keyfile/in/nginx/key.pem  \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
# 如果你是docker部署nginx,则修改为:--reloadcmd     "docker restart nginx"
--reloadcmd     "service nginx reload"
注意事项

默认情况下,证书每 60 天更新一次(可自定义)。更新证书后,Apache 或者 Nginx 服务会通过 reloadcmd 传递的命令自动重载配置。

注意:reloadcmd 非常重要。 证书会自动申请续签,但是如果没有正确的 reloadcmd 命令,证书可能无法被重新应用到 Apache 或者 Nginx,因为配置没有被重载。

查看已安装证书信息

acme.sh --info -d example.com

Nginx配置

server {listen 443 ssl;server_name localhost;ssl_certificate /acme/ssl/nginx/cert.pem;ssl_certificate_key /acme/ssl/nginx/key.pem;location / {root /usr/share/nginx/html;index index.html index.htm;try_files  $uri $uri/ /index.html;}        #error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}
}

附录:详细配置

#  参考地址:https://cloud.tencent.com/document/product/400/35244
server {#SSL 默认访问端口号为 443listen 443 ssl; #请填写绑定证书的域名server_name cloud.tencent.com; #请填写证书文件的相对路径或绝对路径ssl_certificate cloud.tencent.com_bundle.crt; #请填写私钥文件的相对路径或绝对路径ssl_certificate_key cloud.tencent.com.key; ssl_session_timeout 5m;#请按照以下协议配置ssl_protocols TLSv1.2 TLSv1.3; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on;location / {#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。#例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。root html; index  index.html index.htm;}}
http://www.lryc.cn/news/533652.html

相关文章:

  • mysql系统库介绍,数据字典(介绍,存储方式,常见表,访问权限),系统表(介绍,不同功能的表)
  • spring 学习(工厂方式 实例化对象(静态工厂,实例化工厂,实现factorybean 规范))
  • MarkupLM:用于视觉丰富文档理解的文本和标记语言预训练
  • 讯飞智作 AI 配音技术浅析(三):自然语言处理
  • kafka服务端之日志存储
  • 软件工程的熵减:AI如何降低系统复杂度
  • 模拟开发小鹅通首页网站练习
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_strerror 函数
  • 第26场蓝桥入门赛
  • 【CAPL实战】实现弹窗提示及操作
  • 基于ESP32的远程开关灯控制(ESP32+舵机+Android+物联网云平台)
  • 协议-ACLLite-ffmpeg
  • ARM嵌入式学习--第十四天(SPI)
  • DeepSeek-V2 论文解读:混合专家架构的新突破
  • 5分钟了解回归测试
  • 路由器如何进行数据包转发?
  • 【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(四) -> 常见组件(一)
  • iOS 自动翻滚广告条(榜单条)实现方案
  • TensorFlow深度学习实战(7)——分类任务详解
  • 动态规划问题——青蛙跳台阶案例分析
  • element-ui使用el-table,保留字段前的空白
  • kamailio中路由模块汇总
  • 如何使用 DeepSeek 搭建本地知识库
  • 网络HTTP详细讲解
  • 《Origin画百图》之边际分布曲线图
  • 【Milvus】向量数据库pymilvus使用教程
  • React 生命周期函数详解
  • 第 26 场 蓝桥入门赛
  • 组合(力扣77)
  • 网络工程师 (22)网络协议