Centos7利用Certbot部署和更新Nginx下的SSL证书

本文介绍了如何在CentOS7系统中使用Certbot部署和更新Nginx服务器的SSL证书,包括安装Certbot、生成SSL配置、配置SSL证书以及设置自动更新SSL证书的定时任务,确保网站始终使用安全的HTTPS连接。
摘要由CSDN通过智能技术生成

Certbot部署

1、安装certbot

sudo yum install epel-release;

sudo yum install certbot;

certbot --version

3、生成证书

certbot certonly --webroot -w conf/html/ -d http://your.domain.com

3.1 .nginx生成SSL配置

sudo certbot --nginx

证书生成后位于/etc/letsencrypt目录

注意:-w后面的路径需要和Nginx配置中的文件路径一致

4、配置ssl

Nginx配置文件中可以对443端口增加ssl证书:

ssl_certificate /etc/letsencrypt/live/http://your.domain.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/http://your.domain.com/privkey

自动更新ssl证书

  • 模拟证书更新,测试自动续期:

certbot renew --dry-run //如果命令指令成功则可增加自动更新定时任务

  • 强制更新证书:

certbot renew --force-renewal //强制更新未到期证书

  • 添加自动更新定时任务:因为证书有效期只有3个月,推荐每周或者每月执行一次更新命令。

如果证书有效期还有一个月以上,执行命令后会提示无需更新。

crontab -e 或者 vi /etc/crontab

#每周日凌晨 2点执行renew任务,随后3点重新加载nginx

0 2 * * 0 /usr/bin/certbot renew >> /etc/letsencrypt/log/certbot-renew.log

0 3 * * 0 /usr/local/nginx/sbin/nginx -s reload >> /etc/letsencrypt/log/nginx-reload.log

备注:如果遇到nginx报错:The requested nginx plugin does not appear to be installed

执行以下命令就好:

sudo yum install python-certbot-nginx

Certbot命令行工具使用说明

用法:
certbot [子命令] [选项] [-d 域名] [-d 域名] …

Certbot工具用于获取和安装 HTTPS/TLS/SSL 证书。默认情况下,Certbot会尝试为本地网页服务器
(如果不存在会默认安装一个到本地)获取并安装证书。最常用的子命令和选项如下:

获取, 安装, 更新证书:
(默认) run 获取并安装证书到当前网页服务器
certonly 获取或更新证书,但是不安装
renew 更新已经获取但快过期的所有证书
-d 域名列表 指定证书对应的域名列表,域名之间使用逗号分隔

–apache 使用Apache插件进行身份认证和安装
–standalone 运行一个独立的网页服务器用于身份认证
–nginx 使用Nginx插件进行身份认证和安装
–webroot 把身份认证文件放置在服务器的网页根目录下
–manual 使用交互式或脚本钩子的方式获取证书

-n 非交互式运行
–test-cert 从预交付服务器上获取测试证书
–dry-run 测试获取或更新证书,但是不存储到本地硬盘

证书管理:
certificates 显示使用Certbot生成的所有证书的信息
revoke 撤销证书(supply --cert-path)
delete 删除证书

管理你的Let’s Encrypt账户
register 创建Let’s Encrypt ACME账户
–agree-tos 同意ACME服务器的订阅协议
-m EMAIL 接收有关账户的重要通知的邮箱地址

可选参数:
-h, --help 显示帮助信息,然后退出
-c 配置文件, --config 配置文件
配置文件的路径 (默认: /etc/letsencrypt/cli.ini
或 ~/.config/letsencrypt/cli.ini)
-v, --verbose 当前参数可以重复使用多次来增加输出信息的详细程度,例如 -vvv.
(默认: -2)
-n, --non-interactive, --noninteractive
非交互式运行,即运行过程中不需要询问用户输入,但需要额外的命令行
参数。当客户端发现参数缺失时会给出相应的说明。(默认: False)
–force-interactive 无论Certbot是否以命令行的方式运行,强制交互式运行。当前参数不能
用于renew子命令。(默认: False)
-d 域名列表, --domains 域名列表, --domain 域名列表
指定域名列表。如果有多个域名,可以多次使用-d参数,也可以在-d参数后
使用逗号分隔的域名列表。(默认: 询问)
–cert-name 证书名称 指定证书名称。每次Certbot运行只使用一个证书名称。可以使用命令
'certbot certificates’查看已生成的证书名称。当创建新的证书时,
此选项用于指定证书的名称。(默认: 无)
–dry-run 使用客户端执行一次试运行,获取测试证书(无效的证书)但不保存到磁盘。
当前选项仅用于’certonly’和’renew’子命令。
注: 尽管 --dry-run 选项试图阻止任何对系统的修改,但并不能做到
完全避免: 如果使用类似apache或nginx网页服务器来认证插件,
程序运行过程中,会尝试修改或恢复配置文件来获取测试证书,
也会重启网页服务器来部署和回滚这些修改。如果定义了 --pre-hook 和
–post-hook 选项它们会被同时执行,这两个选项有助于更精确地模拟
更新证书。–renew-hook 选项在这里不会被执行。(默认: False)
–preferred-challenges PREF_CHALLS
A sorted, comma delimited list of the preferred
challenge to use during authorization with the most
preferred challenge listed first (Eg, “dns” or “tls-
sni-01,http,dns”). Not all plugins support all
challenges. See
https://c

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游鱼_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值