zoukankan      html  css  js  c++  java
  • docker运行acme.sh 安装配置泛域名证书

    首先是启动daemon的命令

    docker run --rm  -itd  
      -v "$(pwd)/out":/acme.sh  
      --net=host 
      --name=acme.sh 
      neilpang/acme.sh daemon

    这样就会后台挂一个包含acme.sh的容器,并且这个容器会自动走定时任务以便自动续签证书。这里注意如果你使用了dnsapi(比如说签wildcard之类的场景),别忘了在这里使用-e参数去配置你的环境变量,像这样:

    docker run --rm  -itd  
      -v "$(pwd)/out":/acme.sh  
      -e CF_Email="example@example.com" 
      -e CF_Key="asasasasasadasasas" 
      --net=host 
      --name=acme.sh 
      neilpang/acme.sh daemon

    实际上安装好docker后执行以下3步即可

    1)博主使用腾讯云域名如下(-v,DP_Key,DP_Id配置自行修改):

     docker run  -itd  
      -v "/dnmp/services/nginx/ssl/acme":/acme.sh  
      -e DP_Key="xxxxxxxxxxxxxxxx" 
      -e DP_Id="1111" 
      --net=host 
      --name=acme.sh 
      neilpang/acme.sh daemon

    这里有有关于dnsapi模式的详细用法

    然后一切没问题返回出来Container ID之后别忘了docker ps看一下容器是否在正常跑。

    容器准备好了就可以用docker exec跑各种acme.sh的命令了。

    docker  exec  acme.sh --help

    2)签发泛域名证书

    docker exec acme.sh --issue --dns dns_dp -d aa.com -d *.aa.com

    所生成的证书文件会自动保存到docker run时创建的数据卷中。(比如这里是$(pwd)/outrun命令执行时的根目录中的out文件夹)

    3)Nginx 配置Http和Https共存

    listen 80; #如果硬性要求全部走https协议,这一行去除
    listen 443 ssl http2; #如果硬性要求全部走https协议,这里去除ssl
    server_name chandao.test.cn;
    
    #ssl on; #如果硬性要求全部走https协议,这里开启ssl on
    ssl_certificate /dnmp/services/nginx/ssl/acme/aa.com/aa.com.cer;
    ssl_certificate_key /dnmp/services/nginx/ssl/acme/aa.com/aa.com.key;
    
    #ssl性能调优
    #nginx 1.13.0支持了TLSv1.3,TLSv1.3相比之前的TLSv1.2、TLSv1.1等性能大幅提升
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 10m;
    #使用ssl_session_cache优化https下Nginx的性能
    ssl_session_cache builtin:1000 shared:SSL:10m;
    #OCSP Stapling 开启。OCSP是用于在线查询证书吊销情况的服务,使用OCSP Stapling能将证书有效状态的信息缓存到服务器,提高 TLS 握手速度
    #ssl_stapling on;
    #OCSP Stapling 验证开启
    #ssl_stapling_verify on;

    设置 crontab 任务自动续签(可不设置)

    运行 crontab -e 来编辑 crontab 文件,添加如下内容,保存即可。

    10 0 * * * docker exec acme.sh --cron   # acme.sh为容器名,每天0点10分执行
  • 相关阅读:
    启动vmware虚拟机报错:“无法获得VMCI驱动程序的版本:句柄无效”
    vmware虚拟机环境下配置centos为静态IP的步骤
    VirtualBox安装增强功能报错
    eclipse中的yaml插件
    问题解决java.lang.IllegalArgumentException at org.springframework.asm.ClassReader
    git的使用笔记
    springcloud学习笔记(六)Spring Cloud Zuul
    springcloud学习笔记(五)Spring Cloud Actuator
    springcloud学习笔记(四)Spring Cloud Hystrix
    springcloud学习笔记(三)Spring Cloud Ribbon
  • 原文地址:https://www.cnblogs.com/-mrl/p/13335360.html
Copyright © 2011-2022 走看看