
1 Guazi2 219 天前 lucky or nginx proxy manager |
2 qbmiller 219 天前 cloudfare 是不是免费代理? 我的域名阿里云买的,但解析地址迁移到 cf ,然后就能用了。也不用每几个月一刷新了 |
4 2MO 219 天前 51 我刚用 https://www.rainyun.com/shop_ 云应用的免费额度搭了个 https://github.com/mouday/domain-admin ,希望稳定 |
5 asdqaz 219 天前 请求一次签一次对他压力太大了。 |
6 NewYear 219 天前 个人觉得这是好事。 因为这会强制推动 SSL 证书完全自动化申请、续期。 |
7 guo4224 219 天前 via iPhone 那么多 hook 点,写几个脚本的事 |
8 love4taylor PRO 说到这个,不知道 IP 证书会怎么样 |
9 shannon404 219 天前 |
10 InDom 219 天前 |
11 AhFei 219 天前 一直在用 acme.sh 自动更新证书 + Nginx 反代,没有特殊需求的情况下操作也挺简单的: https://yanh.tech/2024/08/applying-certificates-with-acme-sh/ |
13 snylonue 219 天前 nixos 提供的 acme |
14 irrigate2554 219 天前 caddy |
15 lovelylain 219 天前 via Android acme.sh 更新证书后,ssh 上传到目标机 |
16 ijyuqi 219 天前 |
18 zhj9709 218 天前 我一直用 nginx proxy manager |
19 TrembleBeforeMe 218 天前 certd 更新 cdn 域名证书 |
20 hellolinuxer 218 天前 等到 47 天后的时候,我应该已经不用操心了哇 另外:最近把所有免费的全部改成付费的了 |
21 hefish 218 天前 |
22 hellolinuxer 218 天前 @hefish 我的意思是现在不操心免不免费了,能省事就省事(暂时还能够买 1 年期证书),后续平台都会解决的,自托管的也会有更成熟的解决方案 |
23 ysc3839 218 天前 我选择使用 lego https://go-acme.github.io/lego/ 自动更新证书 同时个人不建议使用 acme.sh 。 很多人使用 acme.sh 是觉得 shell 脚本安装简单,没有外部依赖。实际上 shell 脚本因为自身功能太弱,很多功能都要依赖外部工具实现,如提取字符串需要依赖外部的 grep 。加上 shell 脚本是动态解释运行的,如果缺失了某个依赖的程序,只有实际运行到才会报错,很容易遇到执行了一半出错的情况。 我以前在特殊的路由器系统上运行 acme.sh ,就遇到了很多依赖缺失的情况。虽然说脚本可以在启动时进行检测,但是这也是要人工添加的,难免会有疏漏。 其次 shell 脚本没有解析 JSON 的能力,外部解析 JSON 的工具如 jq 等又要额外安装,所以很多情况下会直接用 grep 正则表达式提取 JSON 中的数据,这么做有提取出错的风险。 最后 shell 脚本很容易把变量等数据当成代码执行,出现远程代码执行漏洞的风险较高,同时 acme.sh 曾经确实出现过远程代码执行漏洞。 选择使用 lego ,是因为它基于 Golang ,真正实现了单文件无外部依赖。不足之处是不支持自动添加定时任务,只能手动配置。 |
24 lnkn 218 天前 插眼关注下大佬们的方案 |
25 coldle 218 天前 via Android #23 +1, 这种活交给无依赖的单文件二进制干非常安逸 |
26 iceecream 218 天前 突然想到一个问题,这种证书过期之后会被吊销。但是随着这种短期证书越来越多,证书的 CRL 列表会越来越大。这种证书 CA 是怎么来来保证查询吊销列表顺畅的。 |
27 docx 218 天前 via iPhone acme 是小事,主要是第三方平台要全部同步过去。比如同时用了几家 CDN ,要把 acme 签好的证书上传给他们并更新生效,暂时还没有太好的办法。 |
31 realpg PRO cursor 两次对话 50 分钟 完成 acme.sh 自动化签证书后 post-cert-script 自动上传阿里云腾讯云 并对阿里云腾讯云的所有 CDN 域名智能应用新证书 对阿里云腾讯云的所有负载均衡器智能应用新证书 |
33 jiuhuicinv 218 天前 换 http 。不伺候了 |
34 Hanada 218 天前 via Android @jiuhuicinv 现在 chrome 已经开始在访问 http 网站时提醒不安全了(是直接弹窗提醒,你点击确认之后才能继续浏览那种)。保不齐到时候真的会访问 http 直接给你来个红色页面,把 http 网站打成像诈骗网站一样的级别 |
36 jiuhuicinv 218 天前 @Hanada 反正写的自用接口不再关心 SSL 了(有部署证书但不强制 https 请求)。浏览器和网站的问题到时候再说吧,相信后人的智慧 |
37 GoodRui 218 天前 via Android 怎么没人提 certimate ? 难道是太新太过先进了,知道的人太少吗? |
38 xiangyuecn 218 天前 原则上,SSL 配置这玩意默认不应该让开发者去操心,比如默认由 Nginx 之类的全自动实现。 就和在坐的各位一样,绝大部分 web 服务器压根不关心 https 是怎样的,只关心用户能不能正常访问,管你妈的是 https 还是啥玩意 |
39 dnsjia 218 天前 |
40 lekai63 218 天前 via iPhone 勇证书一般有 web 服务提供吧,用到 nginx 吧 以前我用 1 楼说的 nginx proxy manager 现在我用 nginx-ui (资源占用稍微小点) 当然 都不如只跑 nginx 站用小 |
41 Rache1 218 天前 @xiangyuecn #38 你可能在找 Caddy |
43 Panameragt 218 天前 太对全自动的方案了 ,比如一楼 |
46 holoto 218 天前 域名挂到 cf 解析。用 cloudflared tunnel 替换 nginx 或者 apache 。 |
47 1una 218 天前 acme.sh 是一个 8000 多行的 shell 脚本,感觉没有 23 楼提到的 Lego 靠谱。要么就用 Caddy / Traefik ,内置 ACME 协议支持 |
50 summer2019 218 天前 via iPhone @GoodRui 折腾过,折腾一个下午一直卡在 dns 提供商那一步,一直请求失败。实在折腾累了,遂放弃 |
51 beyondstars 218 天前 自建服务(or 内部服务)用自签证书,公开服务用任何基于 acme 的自动化方案。 |
52 luofeiff6666 218 天前 nginx proxy manager |
53 Greendays 218 天前 如果是部署在第三方服务器上托管的业务,那可有罪受了。 |
54 shiny PRO 我自己写了一个,其实也没很难 https://github.com/shiny/handyacme |
55 Damn 218 天前 via iPhone |
56 bigbigeggs 218 天前 |
57 crackidz 218 天前 ACME 3 个月自动续期一下就好了 |
58 ENE 218 天前 因为我是 docker 运行 nginx 的,所以用 acme.sh 自动更新的,你可看看这个教程[使用 docker acme 申请、续订泛域名证书,并自动重载[docker nginx]( https://sleele.com/2021/04/15/docker-acme-with-docker-nginx/) |
59 memcache 218 天前 nginx proxy mananger 能自动续签 |
60 GoodRui 218 天前 via Android @summer2019 这个都是傻瓜式的点点点有什么难的吗...dns 提供商配置那里,如果你用阿里云或者腾讯云的话,就只需要输入个 access id 和 key 不就行了...别的都不用管啊 |
61 vytvex 217 天前 via Android 有些不太明白能解一下? Cloudflare origin 能用 5 年,甚要在意外的 ssl cert? |
62 eslizn 217 天前 traefik + ingress annotation 很 easy 的解决方案了 |
63 EnderAvaritia 217 天前 acme 和 win-acme ,自己去 git 搜 之后用 nginx 统一代理转发 |
64 v2er119 217 天前 AI 写脚本,监控+提醒+certbot 自动申请 https://maifeipin.com/archives/zi-dong-bu-shu-xi-tong-jian-kong-jiao-ben 只需替换你的邮箱和 tencentcloud.ini (对应的域名 API key ) 就行了 #!/bin/bash THRESHOLD=7 CREDENTIALS="/etc/letsencrypt/tencentcloud.ini" EMAIL="[email protected]" EMAIL_ARG="--email $EMAIL" # EMAIL_ARG="--register-unsafely-without-email" nginx_conf_dirs=( "/etc/nginx/nginx.conf" "/etc/nginx/conf.d/" "/etc/nginx/sites-enabled/" "/etc/nginx/sites-available/" "/usr/local/nginx/conf/" ) nginx_cert_files=$(mktemp) for conf_dir in "${nginx_conf_dirs[@]}"; do if [ -d "$conf_dir" ]; then find "$conf_dir" -type f -name "*.conf" 2>/dev/null | while read -r file; do grep -E '^\s*ssl_certificate\s+' "$file" | awk '{print $2}' | sed "s/['\";]//g" >> "$nginx_cert_files" done elif [ -f "$conf_dir" ]; then grep -E '^\s*ssl_certificate\s+' "$conf_dir" | awk '{print $2}' | sed "s/['\";]//g" >> "$nginx_cert_files" fi done sort -u "$nginx_cert_files" -o "$nginx_cert_files" while read -r cert_path; do if [ -z "$cert_path" ]; then continue; fi if [ ! -f "$cert_path" ]; then echo "证书文件: $cert_path (未找到!)" echo "-----------------------------" continue fi expiry_date=$(openssl x509 -noout -enddate -in "$cert_path" 2>/dev/null | cut -d= -f2) expiry_epoch=$(date -d "$expiry_date" +%s) now_epoch=$(date +%s) days_left=$(( (expiry_epoch - now_epoch) / 86400 )) all_domains=$(openssl x509 -noout -text -in "$cert_path" 2>/dev/null | grep "DNS:" | sed 's/.*DNS://;s/, /\n/g' | tr '\n' ' ') if [ $days_left -le $THRESHOLD ]; then main_domain=$(echo "$all_domains" | awk '{print $1}') echo "证书文件: $cert_path" echo " 包含域名: $all_domains" echo " 过期时间: $expiry_date (剩余 $days_left 天)" echo " 证书即将过期或已过期,自动续期..." certbot certonly \ -a dns-tencentcloud \ --dns-tencentcloud-credentials "$CREDENTIALS" \ -d $all_domains \ $EMAIL_ARG \ --non-interactive --agree-tos \ --keep-until-expiring if [ $? -eq 0 ]; then echo " 证书续期成功" # 自动覆盖 Nginx 实际用的证书 src_cert="/etc/letsencrypt/live/$main_domain/fullchain.pem" src_key="/etc/letsencrypt/live/$main_domain/privkey.pem" if [ -f "$src_cert" ] && [ -f "$src_key" ]; then # 只在 Nginx 用的路径和 Let’s Encrypt 路径不一致时覆盖 if [ "$cert_path" != "$src_cert" ]; then cp -f "$src_cert" "$cert_path" echo " 已覆盖 Nginx 用的证书: $cert_path" fi # 查找 key 路径 key_path=$(grep -E '^\s*ssl_certificate_key\s+' /etc/nginx/nginx.conf /etc/nginx/conf.d/*.conf /etc/nginx/sites-enabled/* /etc/nginx/sites-available/* /usr/local/nginx/conf/*.conf 2>/dev/null | grep "$main_domain" | awk '{print $2}' | sed "s/['\";]//g" | head -n1) if [ -n "$key_path" ] && [ "$key_path" != "$src_key" ]; then cp -f "$src_key" "$key_path" echo " 已覆盖 Nginx 用的私钥: $key_path" fi fi systemctl reload nginx else echo " 证书续期失败" fi else echo "证书文件: $cert_path" echo " 包含域名: $all_domains" echo " 过期时间: $expiry_date (剩余 $days_left 天)" fi echo "-----------------------------" done < "$nginx_cert_files" rm -f "$nginx_cert_files" |
65 irainsoft 217 天前 @vytvex #61 你自己都明白了是 origin ssl ,这是 Cloudflare 边缘节点和你源站服务器之间的通信,其实就是一个内部信任的自签证书而已。如果你拿这个证书去做面向用户的 SSL ,那用户侧看到的就是不受信任的根证书错误( SSL 红屏错误)。如果真的不在意这个,不如自己拿 openssl 签一个 100 年的了。 |
certbot 加上 deploy-hook 自己实现。 一个证书管理没必要引入太多依赖。 |
68 azarasi 217 天前 crontab+certbot 不行吗? |
69 imlonghao 217 天前 @Damn 有的兄弟 `CNAME support by default` https://go-acme.github.io/lego/index.html |
71 coolfan 217 天前 via Android 在用 certd ,狠下心所有服务器配置一遍。(其实也就第一个服务器配置久一点,后面几个都是复制黏贴) |
72 bronyakaka 217 天前 certbot 很稳,别碰 caddy |
73 summer2019 217 天前 |
74 Hantong 216 天前 |
75 vipnetant 216 天前 我用 certd ,非常好用,前期配置好,后面无感。 有报错就发邮件提醒,没错就无感。 |
76 dajj 216 天前 cloudflare 边缘证书 |
77 imlonghao 216 天前 via iPhone certd 的 git history 里一堆 chore: 有点难绷 |
78 salmon5 216 天前 你们这都是个人的小玩具项目,参考价值不大 有没有阿里、腾讯负责证书的分享下?这么多证书节点,到时候怎么弄? |
79 lyxxxh2 216 天前 |
80 chutianyao 216 天前 @azarasi 我用 certbot,把自动续期功能也都放到容器了, 不需要再宿主机上执行 crontab 了 |
82 abc0123xyz 216 天前 caddy |
85 zushi000 215 天前 刚用,给微林打个广告.vx.link.点一下就申请.然后自动给你续期.自己写个脚本把文件复制过去就行了.邀请码网上可以搜到 |
86 gujiwork 215 天前 一直在用 SSL 智管平台的自动签发、自动部署到云服务和 SLB ,很方便。添加后基本上不需要再管它。 https://ssl.dnsjia.com |
87 Damn 199 天前 via iPhone |