找回密码
 加入我们
搜索
      
查看: 7856|回复: 18

[NAS] 分享下为群晖阿里云域名申请Let's Encrypt泛域名证书的过程

[复制链接]
发表于 2023-9-22 14:15 | 显示全部楼层 |阅读模式
本帖最后由 多崎作 于 2023-9-22 21:18 编辑



系统环境为macOS,acme.sh支持跨平台,个别命令会有所不同推荐参考文档修改个别参数。理论上腾讯云等等申请的域名皆可适用,按需修改即可。
若也是Mac或Linux且域名在阿里云申请,命令完全通用照复制黏贴即可。

3202年了NAS的管理页面也应该上HTTPS了,但阿里云的免费证书只支持单域名,比如example.com,直接申请的1年证书只能给单个域名上证书,子域名也可以申请,但若是有5个服务需要不同的子域名,阿里云的免费则是需要手动申请5次再在群晖中为不同服务使用不同证书,显得有些繁琐。若想使用通配符子域名比则需要申请泛域名证书了,通配符或泛域名证书的好处则是*.example.com,无论那个*号是什么,它都可以加上https,也不用手动选择证书直接当成群晖的默认证书即可。

不解释原理了,直接上命令吧。

  1. curl https://get.acme.sh | sh -s email=my@example.com
复制代码

下载acme.sh

  1. crontab -r
复制代码

由于我不是在群晖上使用acme.sh,所以定时任务自动更新证书没用故清除crontab的定时任务。

  1. export Ali_Key="Your AccessKey ID"
复制代码

导入阿里云的AccessKey ID,替换双引号内的内容,可以在控制台申请。

  1. export Ali_Secret="Your AccessKey Secret"
复制代码

同上,修改为自己的Secret即可。

  1. acme.sh --issue --dns dns_ali -d example.com -d *.example.com
复制代码

生成证书,把example.com修改为自己的域名,注意后面那个*不要删掉,这个是代表泛域名。

等待1分钟左右,acme.sh会自动使用DNS验证的方式生成证书,生成完毕后会出现成功生成的证书的文件路径。

若终端报错显示【no matches found】,修改你的终端配置文件 ~/.zshrc ,在最后一行加入 【setopt no_nomatch】。

macOS生成好的路径就在你的用户目录下,Finder进入到用户目录下按下command + shift + . 显示 finder 隐藏文件。
会看到多出不少隐藏文件和文件夹,进入 .acme.sh -> example.com_ecc 就是证书的保存目录,example.com为你申请的域名。

若是给群晖使用,fullchain.cer就是证书,.key结尾的为密钥。添加证书的教程网上就有很多了,可以自行查阅。

此证书有效期为3个月,到期前重复一遍这个过程就能生成新的证书了。最近再研究一下怎样在群晖上全自动生成自动更新免去自己手打一次的麻烦。

学了简单的HTML5+CSS+Bootstrap后写了个NAS的导航页面,配合群晖的自动更新壁纸脚本来自动更新Bing每日壁纸来做配图,按分辨率自适应手机和电脑显示。
WechatIMG6.jpg
WechatIMG7.jpg

发表于 2023-9-22 14:23 | 显示全部楼层
我用的Nginx Proxy Manager,还挺方便的
发表于 2023-9-22 14:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2023-9-22 14:48 | 显示全部楼层
何必呢,直接freeSSL上申请一个二级域名的证书不就行了,一年一换。
 楼主| 发表于 2023-9-22 15:09 | 显示全部楼层
wangzorro 发表于 2023-9-22 14:48
何必呢,直接freeSSL上申请一个二级域名的证书不就行了,一年一换。

习惯自己申请不用第三方网站而已,个人喜好问题
 楼主| 发表于 2023-9-22 15:10 | 显示全部楼层
发表于 2023-9-22 16:36 | 显示全部楼层
https://github.com/acmesh-official/acme.sh

这里就有即食的。


群晖的话用这个更方便,设置个定时任务实现全自动。https://github.com/andyzhshg/syno-acme
发表于 2023-9-22 16:47 | 显示全部楼层
马克学习
发表于 2023-9-22 16:51 来自手机 | 显示全部楼层
我记得以前自动申请的话要80端口的,家宽的80口早就封完了
发表于 2023-9-22 17:50 来自手机 | 显示全部楼层
BONBONBON 发表于 2023-9-22 16:51
我记得以前自动申请的话要80端口的,家宽的80口早就封完了

对呀。现在这自动的不知道怎么弄,学习下。
发表于 2023-9-22 18:25 | 显示全部楼层
阿里云不是本身送免费证书的?1年的
 楼主| 发表于 2023-9-22 19:45 | 显示全部楼层
重庆森林 发表于 2023-9-22 18:25
阿里云不是本身送免费证书的?1年的

子域名不可用,只能主域名用,开头已写
发表于 2023-9-22 19:58 | 显示全部楼层
多崎作 发表于 2023-9-22 19:45
子域名不可用,只能主域名用,开头已写

建议你多试试

微信截图_20230922195731.png
 楼主| 发表于 2023-9-22 21:06 | 显示全部楼层
本帖最后由 多崎作 于 2023-9-22 21:12 编辑


阿里云申请免费证书的只能对应一个子域名,而Let's Encrypt申请的可以匹配任意*.example.com的子域名,如果我需要8个子域名对应不同的服务,那我就要在阿里云申请8次,而Let's Encrypt只需申请一次无论是router.example.com还是anyone.example.com都可以生效。

截屏2023-09-22 20.56.47.png

我特意上控制台申请了一个试试,第一个证书是Let's Encrypt第二个就是阿里云的免费证书。可见Let's Encrypt的可对任意子域名生效,而阿里云免费证书只可对单个test前缀的子域名生效。在阿里云申请泛域名证书或叫通配符域名是需要花钱的。你也可以多试试。

截屏2023-09-22 21.10.42.png

截屏2023-09-22 21.11.43.png
 楼主| 发表于 2023-9-22 21:08 | 显示全部楼层
BONBONBON 发表于 2023-9-22 16:51
我记得以前自动申请的话要80端口的,家宽的80口早就封完了

好像这个是另外一个验证方式,用DNS验证无需80端口只要自己能操作DNS解析证明域名是自己的就行。我用的这个方法脚本就是自动在阿里云控制台那修改DNS解析来验证。
 楼主| 发表于 2023-9-22 21:13 | 显示全部楼层

另外也是我表达不完整,我的意思是通配符子域名不可用。
发表于 2023-9-23 10:27 | 显示全部楼层
群晖自己的ddns一键全搞定不是很方便吗
发表于 2023-9-23 10:52 | 显示全部楼层
QNAP官方就支持,挺好的。
发表于 2023-9-25 11:19 | 显示全部楼层
snowz 发表于 2023-9-22 14:23
我用的Nginx Proxy Manager,还挺方便的

懒得腾讯云每年更新一次证书,我也换成npm了,自动续就是方便。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-28 18:12 , Processed in 0.026467 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表