centos 7 使用certbot解决域名证书续签最佳实践
1、单域名Certbot内网解析的域名认证部署
问题描述:certbot的官网指引中 需要使用公网服务器并且使用HTTP站点在线,这主要是为了完成域名认证所有权,内网域名配置https方案中,无法进行在线认证 可以使用DNS质询的方式,在申请证书时,选择DNS质询,申请过程中会提示你添加域名解析。
certbot 的验证方式有两种,一种是文件验证 一种是DNS验证
如果使用的是文件验证方式的话 需要使用到80端口 因为certbot 需要指定该文件路径进行验证 DNS则不需要这个条件
1.1、安装必要的插件信息:
可选配置:启动EPEL存储库 非必要项
yum install -y epel-release
yum clean all
yum makecache
#启用可选通道 可以不配置
yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
必要配置参数:安装certbot
yum -y install certbot python2-certbot-nginx
1.2、开始申请证书:
申请方式1:不推荐使用
使用该方式进行注册域名的时候 续签过程会导致无法续签因为challenge验证不通过
certbot certonly --manual --preferred-challenges dns -d example.com
执行成功之后会提示下一步操作:
为了证明域名所有权 会要求你在解析的DNS解析站点上添加认证字段
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:667drNZ.........rjF1lSaUndcOnce this is deployed,
Press ENTER to continue
此时需要添加相关的配置信息 认证网站所有权
使用该申请证书续签出现问题:
Cert is due for renewal, auto-renewing...
Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',)
Attempting to renew cert (harbor.example.com) from /etc/letsencrypt/renewal/harbor.example.com.conf produced an unexpected error: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',). Skipping.
All renewal attempts failed. The following certs could not be renewed:/etc/letsencrypt/live/harbor.example.com/fullchain.pem (failure)
分析原因如下:
当我们使用 --manual 选项,并使用 DNS 质询时,每次都要设置不同的 DNS TXT 记录。问题就在这里,当我们 certbot renew 时,这是个自动化过程,而 certbot 无法处理这种场景。
我们可以使用插件解决这个问题,插件在本质上还是调用 DNS 服务的 API 设置 DNS TXT 记录。
在 CentOS 7.x 中:Cloudflare DNS 可以使用 python2-certbot-dns-cloudflare 插件;Google Cloud DNS 可以使用 python2-certbot-dns-google 创建;DigitalOcean DNS 可以使用 python2-certbot-dns-digitalocean 插件,参考 Welcome to certbot-dns-digitalocean’s documentation! 文档,具体细节不再展开。
推荐申请证书使用方式:standalone
certbot certonly --standalone --email mail@qq.com -d domain.com
使用该方法签证证书需要公网解析的IP与部署的服务器IP保持一致 否则会解析不通过无法生成证书;
配置完成之后再敲回车继续执行,此时认证成功之后,会在配置的服务器上生成以下文件:
注意生成的文件名与软连接信息 与自动化注册续期有关联
然后将需要的配置文件拷贝出来保存在nginx配置文件中指定的路径即可;
server {listen 80;server_name www.testdomain.com;return 301 https://$server_name$request_uri;
# rewrite ^(.*)$ https://$server_name$1 permanent;}
server {listen 443 ssl;server_name www.payxuntuofu.ga;#配置调用生成的证书信息 然后既可以使用 存放路径可以自定义 拷贝使用即可注意文件名信息ssl_certificate /etc/letsencrypt/live/www.testdomain.com/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/www.testdomain.com/privkey.pem;
#使用自带的证书路径 可以在续签证书过程中直接调用location / {root /data/www/fans/;access_log on;}
}
使用证书:
不同于其他方法,该方法只能申请证书,你需要手动修改Web服务器配置以使用证书。
1.3、配置自动续订功能:
客户首次申请是要手动改DNS记录,等到过期后,也不能自动续期,需要再次手动调整DNS记录。后续需要验证
证书有效期为 90 天,需要在定时任务中使用 certbot renew 命令重新续期证书,有关内容参考官方文档。但是还需要附加操作,
certbot renew --deploy-hook 'nginx -s reload'
同样可以配置自动脚本方式:
0 1 * * * certbot renew --deploy-hook 'nginx -s reload'
使用standalone 的方式才能进行上述指令的续签证书:
当证书在30天内过期时,就会自动更新,更新成功会重新加载nginx。新注册的证书同样会放置在/etc/letsencrypt/live/域名目录下,因此可以在配置虚拟主机的时候 添加ssl证书路径时调用该路径下的配置文件 避免自动注册后文件没有更新的情况;
centos 7 使用certbot解决域名证书续签最佳实践相关推荐
- certbot泛域名证书申请
前言 什么是Let's Encrypt? 目前世界上就只有为数不多的几家域名证书签发机构得到浏览器的认可,而Let's Encrypt 就是其中一家,并且你可以申请到免费的证书,当然你如果想要付费也行 ...
- 软件解决机械键盘连击问题(或许是最佳实践); 软件解决鼠标连击问题
原地址: Fix Key Chatter in Mechanical Keyboards [Working Best Solution] 这篇文章介绍了物理解决与软件解决的方法, 不过最佳实践应该还是 ...
- Let‘sEncrypt快速颁发及自动续签泛域名证书实践指南
文章目录 0x00 前言简述 0x01 快速安装配置 1.acme.sh 0x02 证书自动签发实践 1.acme.sh + Cloudflare 实现自动签发泛域名证书. 0x03 使用实例 1.简 ...
- 申请泛域名证书和自动续签(网站证书https)
前言 随着网站安全需求增加,数字化证书需求越来越多,而对于个人网站而言各个平台的证书价格昂贵,如何获取属于自己的证书呢?学习本文章教你如何免费安装Let's Encrypt证书(官网:https:// ...
- CentOS 7配置Let’s Encrypt支持免费泛域名证书
Let's Encrypt从2018年开始支持泛域名证书,有效期3个月,目前仅支持acme方式申请,暂不支持certbot. 1.安装acme.sh curl https://get.acme.sh ...
- 使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书
使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书 首先安装 Python 3 yum install -y python39 创建并激活虚拟环境 mkdir -p /mnt/cert ...
- centos使用certbot申请免费证书,并使用nginx安装证书
安装certbot yum install epel-release -y yum install certbot -y 生成证书(域名:app.xxxxxx.com) certbot certonl ...
- certbot安装https证书
解决Failed to download metadata for repo 'AppStream' cd /etc/yum.repos.d/ sed -i 's/mirrorlist/#mirror ...
- Certbot 生成 ssl 证书
certbot 是用来申请 Let's Encrypt 免费 SSL 证书一般的免费 SSL 证书,好像都是使用 Let's Encrypt 颁发的证书.官网地址:https://letsencryp ...
最新文章
- 大年初二,今年过年你选择在男方家过还是女方家过?
- Jsp在Web.xml中的配置
- 热点面试题目—Java异常
- 遇见一款很受用的一个工具,推荐给各位程序员
- 消费者行为模型_市场调查消费者行为研究模型
- mysql的基本数据类型_mysql基本数据类型(mysql学习笔记三)
- (转)FPGA的速度等级(speed grade)
- 【ArcGIS风暴】ArcGIS矢量数据分层设色后导出或裁剪后颜色分类丢失完美解决办法
- Python3 字典
- 求 s=a+aa+ aaa+ aaaa +aaaaa+........的值,a是从键盘输入的,项数也为键盘输入
- iOS 全屏侧滑/UIScrollView/UISlider间滑动冲突
- 通达信副图指标公式:买卖黄金线(抄底用)
- git_day03_01——git远程仓库的使用
- 计算机学院指导报告,重庆大学计算机学院论文指导讲座圆满结束
- 前后端分离式分布式微服务架构项目 学成在线开发项目 源码 视频 文档 工具 合集百度云下载地址
- Winform调用风云二号卫星云图(更改后版本)
- layui tree组件更改图标
- oracle的aud文件是什么,Oracle 11g 在audit_file_dest目录下产生大量的aud文件
- RMAN--obsolete 和 expired的区别
- 收藏 | 机器学习分类算法