• 使用certbot openresty执行获取 Let’s Encrypt https 免费证书


    背景

    项目以前用的是nginx,现在加上了openresty,有一个新的网站需要使用certbot生成,这个时候原先的生成命令不管用,研究了一下如何处理。

    nginx时候的命令

    执行获取 Let’s Encrypt https 证书命令

    // certbot certonly --nginx --nginx-server-root [nginx配置目录] -d [域名] -m [邮箱]
    certbot certonly --nginx --nginx-server-root /etc/nginx/ -d mt.xxx.cn -m xxx@qq.com
    
    • 1
    • 2

    openresty时候的命令

    从–nginx --nginx-server-root改为了–webroot -w,感觉nginx也可以用–webroot -w

    // certbot certonly -webroot -w [项目路径] -d [域名] -m [邮箱]
    certbot certonly --webroot -w /opt/projects/XXXXX/  -d mt.xxx.cn -m XXX@qq.com
    
    • 1
    • 2

    注意

    在执行certbot 命令之前,一定要确保http的请求能正确访问,openresty的配置和域名指向都正确,否则会抛错。
    下图是我没有配置好http的访问导致的抛错:
    这里是由于我
    先做一个临时的配置,能让certbot 访问的http网站

    server {
        listen 80;
        server_name www.xxx.com;
        location / {
            try_files $uri $uri/ /index.html;
            root /opt/xxx/xxx;
            index index.html index.htm;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    配置正确以后的执行情况:
    在这里插入图片描述

    启用443端口

    并把http的指向https

    server {
        listen 80;
        server_name www.xxx.com;
        rewrite  ^/(.*)$  https://www.xxx.com/$1 permanent;
    }
    
    server {
        listen 443 ssl;
        server_name www.xxx.com;
    
        ssl_prefer_server_ciphers on;
        ssl_ciphers HIGH:!ADH:!MD5:!aNULL:!eNULL:!MEDIUM:!LOW:!EXP:!kEDH;
        ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_stapling on;
        ssl_stapling_verify on;
        add_header Strict-Transport-Security max-age=15768000;
    
        ssl_certificate /etc/letsencrypt/live/www.xxx.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.xxx.com/privkey.pem;
    
    
        location / {
            try_files $uri $uri/ /index.html;
            root /opt/xxx/xxx;
            index index.html index.htm;
        }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                    root   html;
            }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    自动更新证书

    Let’s Encrypt 免费 SSL 证书用起来非常方便,但每次申请只有三个月有效期,在每次到期之前都需要重新申请,Certbot 提供了一键续订的命令

    # 1. 打开定时任务配置
     crontab -e
    # 2. 增加定时刷新的配置
    30 3 * */2 * /usr/bin/certbot renew --quiet >> /var/log/cerbot.log
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    VUE写后台管理(2)
    图解系列--理解L3交换机的性能与功能
    Vue环境安装
    【生物信息学】基因富集分析
    Swagger示例
    [leetcode]给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度
    AUTOSAR AP硬核知识点梳理(1)
    ICC2:Design Planning(03)Power Network Synthesis
    SCI一区级 | Matlab实现GJO-CNN-LSTM-Multihead-Attention多变量时间序列预测
    【HDU100】杭电入门一百道 C++ 全 题 解
  • 原文地址:https://blog.csdn.net/qq_27575627/article/details/126724230