Centos9配置网站SSL证书并自动续时

Centos9配置网站SSL证书并自动续时

前言

网站搭建后若未配置SSL证书,则默认通过http访问,而对于配置了SSL证书的网站,一是利于收录,二是能防止浏览器报不安全的警告。

步骤

1、安装 EPEL 和 dnf-plugins-core

sudo dnf install epel-release -y
sudo dnf install dnf-plugins-core -y

1

2. 启用 PowerTools 仓库(CentOS 9 Stream 需要)

sudo dnf config-manager --set-enabled crb

注:CentOS 9 中 CRB 替代了 PowerTools。

2

3. 安装 Certbot 和 Nginx 插件

sudo dnf install certbot python3-certbot-nginx -y

3

4使用 certbot 自动为你的域名申请证书。

sudo certbot --nginx -d www.yourdomain.com -d yourdomain.com

如果你只有一个域名,比如 yourdomain.com,可以只写一个:

sudo certbot --nginx -d yourdomain.com

4

5.查看nginx配置文件

如图可以看到我们的nginx配置文件被自动修改为https访问了

5

6. 测试续期功能

sudo certbot renew --dry-run

有succeeded则说明自动续期是通畅的,那么我们就可以自己配置自动续期功能了

6

7.添加定时任务

sudo crontab -e

然后输入如下内容保存即可

0 0,12 * * * /usr/bin/certbot renew --quiet

当然我们可以用如下命令查看定时任务是否存在

sudo crontab -l

7

配置上后,我们的域名证书就会自动在到期前30天内自动续期

8.【重要】源码修改配置代理

幽络源的该项目由于是前端后端分离的,在没有配置SSL证书前,前端在配置文件中直接是配置的启动于http://域名的,然后axios也是配置的http://域名的,并且在nginx中我只做了前端项目的反向代理。

那么现在我需要将项目启动于https+域名,让用户通过 https://域名 能正常访问到我的网站

但网站发起的接口请求还是 http的,这会导致浏览器报错:混合内容(Mixed Content),然后接口无法正常请求,因此axios也得修改为https的。如图我修改了nuxt项目中的nuxt.conf.js

8

但是这样还不够,因为我们的后端是启动于localhost:8080的,那我们需要去修改后端吗?当然不需要,只需要在nginx配置上后端项目的反向代理即可,我的后端项目全局上下文路径为/api,因此配置/api的反向代理到localhost:8080即可,如图

9

需要特别注意的是代理中的proxy_pass中,localhost:8080后是没有斜杠的,如果带上斜杠,则前端发起的例如 /api/test 会被转发到 localhost:8080/test去,导致无法对应上接口,而不带上斜杠,则会直接拼接转发到 localhost:8080/api/test 正确的接口路径

至此,网站才算真正的配置好https证书

结语

以上为幽络源的“Centos9配置网站SSL证书并自动续时”教程,如有疑问或对建站感兴趣的小伙伴可以加入我们的QQ群307531422

THE END
喜欢就支持一下吧
分享