docker获取Let's Encrypt永久免费SSL证书的方法

 更新时间:2021年01月03日 15:19:50   作者:lgp20151222  
在本篇文章里小编给大家分享了一篇关于docker获取Let's Encrypt永久免费SSL证书的方法,以后需要的朋友们可以参考下。

一、起因

官方的cerbot太烦了,不建议使用还不如野蛮生长的acme.sh,而这里介绍docker运行cerbot获取Let's Encrypt永久免费SSL证书

二、选型

cerbot的证书不会自动刷新日期,但是acme.sh自带这功能,每天凌晨0:00自动检测过期域名并且自动续期

选择docker运行cerbot,是为了让服务器里尽量少配置和无意义的程序,方便管理。例如Let's Encrypt需要的Python2.7,git,pip我们都不需要装在宿主机内,容器就自己配置好了

原文 https://github.com/acmesh-official/acme.sh/wiki/Run-acme.sh-in-docker

三、拉取镜像

$ docker pull neilpang/acme.sh

以dns mode运行docker命令

$ docker run --rm -it \
 -v "$(pwd)/out":/acme.sh \
 -e Ali_Key="xxxxxx" \
 -e Ali_Secret="xxxx" \
 neilpang/acme.sh --issue --dns dns_ali -d domain.cn -d *.domain.cn

成功之后,证书会保存在out文件夹,也可以指定路径,修改上面第一行 "$(pwd)/out",改为你想要保存的路径即可

四、注意

--dns dns_ali

要根据你域名的dns模式选择,显然这里是阿里。所以前面的两项配置才是Ali_Key,Ali_Secret

Ali_Key,Ali_Secret

需要从阿里云后台获取

不知道自己域名的dns模式可以去这里查找 https://github.com/acmesh-official/acme.sh/wiki/dnsapi

如何获取域名的dns模式及相关配置,可以直接找你域名的客服

用腾讯做例子

$ docker run --rm -it \
 -v "$(pwd)/out":/acme.sh \
 -e DP_Id="xxxxxx" \
 -e DP_Key="xxxx" \
 neilpang/acme.sh --issue --dns dns_dp -d domain.cn -d *.domain.cn

腾讯这坑爹收购了DNSPod,所以是dns_dp

我一开始还以为是TX_Id,TX_Key,dns_tx之类的

找了一圈,发现自己的阿里服务器正常使用,但就是步骤没问题

于是问公司拿到域名账户,问腾讯客服才知道这事

当然,这跟腾讯无关,坑爹公司的锅更大

老子干这个啥都没有

五、命令

docker run --rm 的命令懂得都懂,运行完就退出,这样能执行个锤子自动更新ssh证书

方法一

不docker run --rm,直接docker run就好了

优点简单,缺点一个容器专门跑这个,太浪费资源了

方法二

定时任务跑docker run --rm,原文的例子就有了

#run cron job
docker run --rm -it \
 -v "$(pwd)/out":/acme.sh \
 --net=host \
 neilpang/acme.sh --cron

其实--cron是linux的crontab参数,具体用法不累赘了

喜欢用crontab的用crontab

不喜欢的看看 博文里的二

方法三

把这玩意和docker守护进程绑一起,毕竟守护进程必须开,不算浪费资源

这是acme.sh的推荐做法

同样带原文的例子

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

六、最终结果

$ docker run --rm -itd \
 -v "$(pwd)/out":/acme.sh \
 -e DP_Id="xxxxxx" \
 -e DP_Key="xxxx" \
 neilpang/acme.sh --issue --dns dns_dp -d domain.cn -d *.domain.cn daemon

到此这篇关于docker获取Let's Encrypt永久免费SSL证书的方法的文章就介绍到这了,更多相关docker如何获取Let's Encrypt永久免费SSL证书内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Docker部署打包发布springboot项目

    使用Docker部署打包发布springboot项目

    本文主要介绍了使用Docker部署打包发布springboot项目,从安装docker到多种方式打包发布,编译,镜像,容器等问题,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • docker pull镜像失败问题解决方法

    docker pull镜像失败问题解决方法

    在使用Docker拉取镜像时可能会遇到超时失败的问题,通常由网络问题导致,本文介绍了两种解决方法:更改镜像加速地址和添加DNS配置,这些措施可以帮助改善与Docker Hub的连接,提高拉取镜像的成功率,如果问题依旧,请参考更多相关资料或寻求专业帮助
    2024-09-09
  • 深入理解Docker Load和Docker Import的区别详解

    深入理解Docker Load和Docker Import的区别详解

    Docker是一个流行的容器化平台,提供了丰富的命令和功能,其中docker load和docker import是两个常用的命令,用于加载Docker镜像,这篇文章主要给大家介绍了关于Docker Load和Docker Import区别的相关资料,需要的朋友可以参考下
    2024-03-03
  • Docker基础和常用命令详解

    Docker基础和常用命令详解

    这篇文章主要介绍了Docker基础和常用命令方法的相关资料,需要的朋友可以参考下
    2022-11-11
  • 如何将Docker的构建时间减少40%(推荐)

    如何将Docker的构建时间减少40%(推荐)

    这篇文章主要介绍了如何将Docker的构建时间减少40%,本文描述了我们在优化CI管道后获得的一些新见解,需要的朋友可以参考下
    2023-11-11
  • docker下的 redis 之持久化存储详解

    docker下的 redis 之持久化存储详解

    这篇文章主要介绍了docker下的 redis 之持久化存储详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • OpenWRT如何解决Docker空间不足的问题

    OpenWRT如何解决Docker空间不足的问题

    由于OpenWRT成品机的磁盘未完全分配,导致Docker空间不足,通过OpenWRT系统的磁盘管理创建新的ext4分区,并将Docker运行路径修改至该分区,可以有效解决空间问题,具体步骤包括在OpenWRT创建分区,终端操作创建文件夹,修改Docker的daemon.json文件及Docker根目录配置
    2024-10-10
  • 解决Docker错误“docker build“ requires exactly 1 argument(s)问题

    解决Docker错误“docker build“ requires exactly 1 argument(s)

    这篇文章主要介绍了解决Docker错误“docker build“ requires exactly 1 argument(s)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Docker部署Tomcat的示例代码

    Docker部署Tomcat的示例代码

    本文主要介绍了Docker部署Tomcat的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Docker Compose快速部署多容器服务实战的实例详解

    Docker Compose快速部署多容器服务实战的实例详解

    使用 Docker Compose 可以轻松、高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具,本文给大家介绍Docker Compose快速部署多容器服务实战,感兴趣的朋友一起看看吧
    2022-02-02

最新评论