使用Certbot申请/续签ssl证书

Certbot

1. 安装Certbot

yum install certbot python3-certbot-nginx

2. 申请SSL证书

# 这里你需要申请几个域名的证书你就写几个,每个域名前面都是-d选项
sudo certbot certonly --nginx -d hub.fushudi.cn -d www.fushudi.cn

这里如果报错说没有安装nginx插件的话就是python3-certbot-nginx这个包没装上
使用的是Amazon Linux 2 的话,执行这条命令安装插件

sudo yum install certbot-nginx

安装好之后重新执行申请证书的命令

sudo certbot certonly --nginx -d hub.fushudi.cn -d www.fushudi.cn

然后按照他的要求你输入一些东西就等他自动完成,然后执行完会告诉你你的域名的证书存在哪个目录,默认是存在
/etc/letsencrypt/live/hub.fushudi.cn/这个目录下

3. 增加域名

如果刚开始申请的证书不够用,现在又需要额外的申请几个域名,可以这样

sudo certbot certonly --nginx -d hub.fushudi.cn -d www.fushudi.cn -d "你的新域名"

还是这条命令,后面继续跟上你的域名就可以了

4. nginx配置https

证书申请好了我们就可以开始对nginx做配置了

server {
    listen 80;
    server_name www.fushudi.cn;
    server_name fushudi.cn;

    # 重定向HTTP请求到HTTPS
    return 301 https://www.fushudi.cn$request_uri;
}

server {
    listen 443 ssl;
    server_name fushudi.cn www.fushudi.cn;

    # SSL配置
    ssl_certificate /etc/letsencrypt/live/hub.fushudi.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/hub.fushudi.cn/privkey.pem;

    root /usr/share/nginx/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

配置好之后重启nginx

systemctl restart nginx

然后你的域名就是https的了

5. 自动续签证书

crontab -e
0 0 1 * * /usr/bin/certbot renew --quiet

到这里就配置好了,他每个月的第一天会检查你的证书有没有过期,过期了会帮你续签

posted @ 2024-07-04 19:36  FuShudi  阅读(20)  评论(0编辑  收藏  举报