CentOS7 nginx SSL证书申请并自动续期


一、 安装Certbot

  • 升级
Markup 全选
yum update -y
  • 安装Certbot
Markup 全选
yum install certbot -y
  • 查看版本
Markup 全选
certbot --version

二、单域名证书,校验文件的方式(推荐)

2.1. 创建文件夹用于存放域名校验文件

创建文件夹 /var/www/certbot

Markup 全选
mkdir -p /var/www/certbot

设置文件夹权限 

Markup 全选
chmod 777 /var/www/certbot

2.2.修改Nginx配置

nginx配置文件添加跳转配置,放在顶部,如果已经

Markup 全选
location /.well-known/acme-challenge/ {
	root /var/www/certbot;
}

例如:

Markup 全选
server {
  listen 80;
  server_name erp.jocsoft.cn;
  location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }
}

2.3.证书申请测试

Markup 全选
certbot certonly --webroot --webroot-path /var/www/certbot/ --dry-run -d erp.jocsoft.cn
 命令解释

这个命令用于使用 webroot 插件申请证书,具体参数解释如下:

1. certbot certonly

  • certbot 是命令行工具,用来与 Let's Encrypt 交互并获取证书。
  • certonly 是一个选项,意味着只申请证书,而不配置Web服务器。它不会自动修改Web服务器的配置,只有证书会被生成。

2. --webroot

  • 这个选项告诉 Certbot 使用 webroot 插件 来进行域名验证。
  • Webroot 插件通过在指定的 Web 服务器的根目录下放置一个临时文件,来验证你对该域名的所有权。Let’s Encrypt 会通过访问 http://example.org/.well-known/acme-challenge/ 来检查该文件。

3. --webroot-path /var/www/certbot/

  • --webroot-path 指定了 Web 服务器的根目录。在这里,/var/www/certbot/ 是你网站的根目录路径,Certbot 会在这个目录下创建临时的验证文件(/.well-known/acme-challenge/)。
  • 需要确保这个目录是Web服务器可访问的,并且Certbot可以在其中创建临时文件。

4. --dry-run

  • --dry-run 是一个 模拟测试 选项,用来验证整个证书申请过程,但不会生成真实的证书。
  • 它会模拟整个申请过程,包括与 Let's Encrypt 服务器的交互,但实际上不会生成证书文件,也不会向你的网站服务器安装证书。这个选项非常有用,在正式申请证书前,检查配置是否正确。

5. -d example.org

  • -d 指定你要申请证书的域名。在这个例子中,example.org 是你申请证书的域名。
  • 你可以使用多个 -d 选项来为多个域名申请证书。例如:-d example.org -d www.example.org

总结

整个命令的意思是:

  1. 使用 webroot 插件来申请 example.org 的证书。
  2. Web服务器的根目录是 /var/www/certbot/
  3. 运行一个 模拟测试,即不生成真实证书,只验证申请过程是否成功。

如果 --dry-run 测试通过,你可以去掉这个选项,并正式申请证书。

运行截图

CentOS7 nginx SSL证书申请并自动续期

2.4. 测试通过后,正式申请证书

Markup 全选
certbot certonly --webroot --webroot-path /var/www/certbot/ -d erp.jocsoft.cn

运行截图

CentOS7 nginx SSL证书申请并自动续期

生成的证书路径:/etc/letsencrypt/live

2.5. nginx配置ssl证书

Markup 全选
server {
  listen 80;
  server_name erp.jocsoft.cn;
  location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }
  return 301 https://$host$request_uri; # http自动跳转https
}
server {
  listen 443;
  server_name erp.jocsoft.cn;
  ssl_certificate   /etc/letsencrypt/live/erp.jocsoft.cn/fullchain.pem;
  ssl_certificate_key  /etc/letsencrypt/live/erp.jocsoft.cn/privkey.pem;
  location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }
  location / {
    proxy_pass http://127.0.0.1:9002;
  }
}

2.6. 重载nginx

Markup 全选
nginx -s reload

CentOS7 nginx SSL证书申请并自动续期

 

2.7 更新证书

Markup 全选
certboot renew

三、通配符证书

certbot -d jocsoft.cn -d *.jocsoft.cn --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory certonly --agree-tos

certbot -d yesdotnet.com -d *.yesdotnet.com --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory certonly --agree-tos

 

CentOS 7 上使用Certbot申请通配符证书-阿里云开发者社区

通配符需要设置DNS,自动续期的时候有点麻烦,还得添加解析,或者通过自动解析脚本,但是得申请key。

因此使用验证文件来申请单域名比较友好些吧,续期简单

 

 

其他备注信息

nginx反向代理中使用Certbot申请证书:

配置参考:

Markup 全选
server {
    listen 80;
    listen [::]:80;

    server_name example.org;
    server_tokens off;

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://example.org$request_uri;
    }
}

申请SSL证书后,是这样子:

Markup 全选
server {
    listen 80;
    listen [::]:80;

    server_name example.org www.example.org;
    server_tokens off;

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://example.org$request_uri;
    }
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;

    server_name example.org;

    ssl_certificate /etc/nginx/ssl/live/example.org/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/live/example.org/privkey.pem;
    
    location / {
    	proxy_pass http://<local IP>:<local port>/;
    }
}

来源参考:通过 Docker 部署 Nginx 配置反向代理,并通过 Certbot 获取免费 SSL 证书 - Lemonade

 

删除证书;

C# 全选
certbot delete

会列出当前系统注册过的域名,然后输入要删除的序号即可

CentOS7 nginx SSL证书申请并自动续期

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:CentOS7部署OpenVPN服务端
下一篇:vue-plugin-hiprint
评论列表

发表评论

评论内容
昵称:
关联文章

CentOS7 nginx SSL证书申请自动续期
windows申请免费ssl证书Let's Encrypt
windows申请免费SSL证书-Let's Encrypt
阿里云免费SSL证书申请
SSL证书:Certify工具自动注册管理免费的 Let's Encrypt Https证书
CentOS安装nginx
CentOS7安装Docker
CentOS7部署OpenVPN服务端
nginx配置http自动重定向到https
宝塔系统 nginx位置记录
CentOS新增用户提升管理员
ssl-helper使用教程
nginx反向代理https
windows下openssl安装,证书生成,nginx配置https以及http重定向https
nginx初始配置优化
nginx配置指南
CentOS配置阿里云镜像
nginx websocket支持
CentOS安装宝塔
手把手教你学Dapr - 7. Actors

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码