Nginx 使用certbot 生成证书

  • certbot 是一款免费且开源的自动化安全证书管理工具

  • 安装软件

    • yum install epel-release

    • yum install certbot

      • 如果提示python-urllib3.noarch 0:1.10…….
      • 备份一下:
      mv /usr/lib/python2.7/site-packages/urllib3/packages/ssl_match_hostname /usr/lib/python2.7/site-packages/urllib3/packages/ssl_match_hostname.bak
      
    • yum install certbot python3-certbot-nginx

    • yum install python-urllib3

  • 生成证书

    # 泛域名:
    certbot certonly -d *.使用自己的域名替换.com --manual --preferred-challenges dns
    
    # 主域名:
    certbot certonly -d 使用自己的域名替换.com --manual --preferred-challenges dns
    
    
    • 输入正确的邮箱地址,然后一路y同意
    • 到阿里云域名控制台,指定DNS TXT 解析记录,主机记录填入终端提示的二级域名_acme-challenge 主机的记录值 填写终端打印出来的 一串字符 fQ9JS.....xx.....r_uNxynA 然后回车就可以了 证书有效期是3个月。
  • nginx 配置ssl

        server {
            listen       443 ssl;
            server_name  自己的域名.com;
    
            ssl_certificate      /etc/letsencrypt/live/自己的域名.com/fullchain.pem;
            ssl_certificate_key  /etc/letsencrypt/live/自己的域名.com/privkey.key;
    
            ssl_session_cache    shared:SSL:1m;
            ssl_session_timeout  5m;
    
            ssl_ciphers  HIGH:!aNULL:!MD5;
            ssl_prefer_server_ciphers  on;
    
            location / {
                root   html;
                index  index.html index.htm;
    	    proxy_pass http://redbook;
            }
        }
    
    
    • ./sbin/nginx -t 检查一下conf配置文件有没有错误
    • 然后重新加载一下nginx
  • 配置自动化自动续签域名证书

    • 以阿里云管理后台为例,生成一个子用户,给该用户添加AliyunDNSFullAccess管理DNS解析权限,需要提前保存阿里云的用户 AccessKey IDAccessKey Secret

    • AccessKey ID LT********sdf

    • AccessKey Secret LFI*******dfsgQ

    • 安装aliyun cli 工具

      wget http://cdn.jsdelivr.net/gh/justjavac/certbot-dns-aliyun@main/alidns.sh
      sudo cp alidns.sh /usr/local/bin
      sudo chmod +x /usr/local/bin/alidns.sh
      sudo ln -s /usr/local/bin/alidns.sh /usr/local/bin/alidns
      rm alidns.sh
      
      
      • 测试是否能申请 正式申请时去掉 --dry-run 参数:

        certbot certonly -d *.替换自己的域名.com --manual --preferred-challenges dns --manual-auth-hook "alidns" --manual-cleanup-hook "alidns clean" --dry-run
        
      • 证书续签 测试证书续签--dry-run

        certbot renew --manual --preferred-challenges dns --manual-auth-hook "alidns" --manual-cleanup-hook "alidns clean" --dry-run
        
        
        • 添加到定时任务中
          • crontab -e

            1 1 */1 * * root certbot renew --manual --preferred-challenges dns --manual-auth-hook "alidns" --manual-cleanup-hook "alidns clean" --deploy-hook "systemctl restart nginx"
            
            
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐