关于自动生成 ssl 证书的问题

88 天前
 sanshao124
各位大佬,请教一个问题,我的系统是 mac ,安装了 docker ,如果我只是想通过 docker 实现自动获取某个域名的证书该怎么弄呢?最好带自动续期的操作

我只需要本地获取了证书文件就行,比如域名.key ,域名.pem ,这种文件,不需要再做其他操作,网上搜的要么很复杂,要么就在 mac 上无法实现

至于证书是通过什么平台获取的,通过 acme 还是其他方式都不重要,只要是 docker 下的就行

我对 docker 了解的不多,只会照着已有的命令改改参数
1933 次点击
所在节点    程序员
24 条回复
defunct9
88 天前
lego
molezznet
88 天前
mac 不支持 cron + acme 吗? 连 docker 都不用运行的
sanshao124
88 天前
@molezznet 我还是喜欢 docker ,个人原因
cat
88 天前
certbot 不是有官方 docker 镜像嘛
sanshao124
88 天前
@cat 主要不是有没有得问题,是我不知道该如何用
fly9i
88 天前
建议既然喜欢 docker 就先学学,哪怕是用 ai 呢,否则这是干啥呢……
sanshao124
88 天前
@fly9i 我学了,可是我没看懂啊,大部分都是涉及到 nginx 或者 apache ,我压根就不需要这玩意,我就不知道该怎么弄了
sanshao124
88 天前
@fly9i 况且我研究半天可能还不如大家的一句话呢
sanshao124
88 天前
@fly9i 我喜欢 docker 不是因为技术,是因为我需要部署一些服务,docker 比较方便,管理起来也省事,坏了修起来都好修,很多年都不搞技术了,弄 docker 也是纯自己用的
Jinnrry
88 天前
https://go-acme.github.io/lego/usage/cli/obtain-a-certificate/index.html

使用 lego 的 cli 模式,如果你服务器可以开 http 的话你可以使用 http 验证模式( lego 客户端自动开启一个 http 服务,不需要你装 nignx 啥的),如果不能使用 http 模式的话(比如 80 端口被占用)你可以使用 dns 挑战模式,你只需要填写你 dns 服务商的 token 授权啥的,lego 客户端自动操作 dns 记录完成验证
JensenQian
88 天前
不是哥们,你不整 nginx 什么的,要证书干啥
哥们你是不是想要傻瓜式的一键就能申请的那种
这个倒是最近玩过一个叫 lucky ,用来内网穿透的,不过也能申请证书
功能有点多,支持 docker
JensenQian
88 天前
@JensenQian #11 不过我没看懂你需要证书来干啥
内网穿透吗,还是干啥,你要内网穿透或者外面访问的话直接可以用 cf tunnel
那玩意点几下就行了,证书什么的你都不用管
sanshao124
88 天前
@JensenQian #12 我用的 frp ,外网有个 frp server
RoyLaw
88 天前
https://github.com/usual2970/certimate/releases 这个工具是不是很符合你的需求?我刚刚开始用
sanshao124
88 天前
@JensenQian #11 我就想说没有个傻瓜式的 docker 吗?加上比如阿里云的 id 和 secret ,就能直接生成证书的,好像都好麻烦啊,我问 chatgpt ,它说用 certbot ,然后还要安装 dns 插件,死活也装不上,然后就各种问题,我都快整崩溃了
sanshao124
88 天前
@RoyLaw 牛逼啊,对对,就是这种,谢谢,我研究一下
sanshao124
88 天前
@RoyLaw 我用 docker 方式安装,这个错误啥意思: git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
sanshao124
88 天前
@RoyLaw 我好像搞定了,谢谢啊
RoyLaw
88 天前
@sanshao124 lol 自己解决的速度好快 不用客气
adminhf
88 天前
FROM ubuntu:20.04
RUN apt-get update && \
apt-get install -y curl socat && \
apt-get clean
RUN curl https://get.acme.sh | sh
ENV CF_API_EMAIL your_email@example.com
ENV CF_API_KEY your_cloudflare_api_key
RUN /root/.acme.sh/acme.sh --issue --dns dns_cf -d yourdomain.com -d '*.yourdomain.com' && \
/root/.acme.sh/acme.sh --install-cert -d yourdomain.com \
--key-file /path/to/your/keyfile.key \
--fullchain-file /path/to/your/fullchain.cer
RUN apt-get purge -y curl && apt-get autoremove -y
CMD ["tail", "-f", "/dev/null"]
简单写了写,自己改改吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1075671

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX