zoukankan      html  css  js  c++  java
  • nginx使用acme.sh脚本配置letsencrypt ssl证书

    先说下背景:certbot依赖太旧

    2020年之后Python2 安全不支持 不能再用了,

    网站用的是letsencrypt免费证书,letsencrypt官方推荐acme客户端是Certbot

    但是Certbot 在nginx on centos7上用的是 python2-certbot-nginx ,基于Python2的,(看了下centos8是使用的python3的,但是更新到8代价有点大)

    所以cerbot也用不得了

     解决方案:acme.sh

    在官方客户端列表里发现了一个用shell实现的:acme.sh 现在(2020年09月09日)有19K star

    直接使用DNS方式生成泛域名证书,这里使用acme.sh配置let'sencrypt网址证书,过程如下(请以官网文档为主)

    1安装 参照官网 安装

    2配置dns 找到自动的域名供应商添加dnsapi key secret

    3生成证书把证书安装到指定位置

    4配置nginx 只需要在原来的80 server的基础上更改443端口并添加证书配置就可以了,见下方红色代码部分

        server {
            listen 443;
            server_name localhost;
    
            ssl on;
            index index.html index.htm;
            ssl_certificate   /上一步你安装的位置/fullchain.cer;
            ssl_certificate_key  /上一步你安装的位置/clsn.key;
            ssl_session_timeout 5m;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
    
            root html;
            location / {
                root html;
                index index.html index.htm;
            }
        }

    5 重启nginx  :    service nginx force-reload, 不是 service nginx reload, 据测试, reload 并不会重新加载证书, 所以用的 force-reload

    done

  • 相关阅读:
    十五、MySQL DELETE 语句
    十三、MySQL WHERE 子句
    十四、MySQL UPDATE 查询
    十一、MySQL 插入数据
    十二、MySQL 查询数据
    十、MySQL 删除数据表
    九、MySQL 创建数据表
    八、MySQL 数据类型
    七、MySQL 选择数据库
    六、MySQL 删除数据库
  • 原文地址:https://www.cnblogs.com/timseng/p/13638539.html
Copyright © 2011-2022 走看看