您当前的位置:首页 > 计算机 > 软件应用 > 资料管理

群晖利用lucky证书映射自动部署ssl证书

时间:09-03来源:千脑网作者:qianaonan点击数:

系统:黑群DS9207.2.2

平台:docker镜像(lucky)

1、部署lucky镜像,开文件夹映射,开启DDNS,申请ssl证书,拉到最下面的证书映射,填入docker设置的映射文件夹(一般是\goodlucky),根据自己的设置来(教程自己问度娘,因平台规则不详细写了)

2、查看nas的ssl文件夹,映射文件夹下的Cert,复制路径,后面 用的到。

3、电脑新建一个txt文本,复制粘贴下面代码保存,后缀改sh。

4、源码:

#!/bin/bash
# 群晖SSL证书部署脚本(精简版)
 
# ███████ 配置区 ███████
DOMAIN="你的域名"
LUCKY_CERT_DIR="lucky证书映射路径"
SYNO_CERT_DIR="nas保存证书的路径"
BACKUP_DIR="备份证书路径"
LOG_FILE="日志"
 
# ███████ 函数:日志记录 ███████
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
 
# ███████ 主流程 ███████
main() {
    log "=== 开始证书部署 ==="
 
    # 1. 备份证书(保留最新一份)
    log "备份当前证书..."
    rm -f "${BACKUP_DIR}/latest.tar.gz"
    tar -czf "${BACKUP_DIR}/latest.tar.gz" -C "$SYNO_CERT_DIR" . || {
        log "备份失败:检查磁盘空间或权限"
        exit 1
    }
 
    # 2. 替换证书文件
    log "替换证书..."
    declare -A file_map=(
        ["${DOMAIN}.crt"]="cert.pem"
        ["${DOMAIN}.key"]="privkey.pem"
        ["${DOMAIN}_issuerCertificate.crt"]="chain.pem"
    )
 
    for src in "${!file_map[@]}"; do
        dst="${file_map[$src]}"
        cp -f "${LUCKY_CERT_DIR}/${src}" "${SYNO_CERT_DIR}/${dst}" || {
            log "文件替换失败:${src} → ${dst}"
            exit 1
        }
    done
 
    # 3. 构建证书链
    log "构建fullchain.pem..."
    cat "${LUCKY_CERT_DIR}/${DOMAIN}.crt" \
        "${LUCKY_CERT_DIR}/${DOMAIN}_issuerCertificate.crt" > \
        "${SYNO_CERT_DIR}/fullchain.pem"
 
    # 4. 设置权限
    chmod 644 "${SYNO_CERT_DIR}/cert.pem" \
              "${SYNO_CERT_DIR}/chain.pem" \
              "${SYNO_CERT_DIR}/fullchain.pem"
    chmod 600 "${SYNO_CERT_DIR}/privkey.pem"
 
    # 5. 重启服务
    log "重启Nginx服务..."
    synosystemctl restart nginx
 
    # 6. 最终验证
    log "证书有效期信息:"
    openssl x509 -noout -dates -in "${SYNO_CERT_DIR}/cert.pem" | tee -a "$LOG_FILE"
    log "=== 部署完成 ==="
}
 
# 执行主程序
main

5、下载你申请到的ssl证书备用,源码中的DOMAIN(你的域名)、LUCKY_CERT_DIR(证书映射Cert的路径,如:/volume1/docker/goodlucky/Cert)、SYNO_CERT_DIR(后面6会说)、BACKUP_DIR(备份路径,可设置与LUCKY_CERT_DIR一样,或例如:/volume1/docker/goodlucky/Backup)、LOG_FILE(日志保存文件夹,如:/volume1/docker/goodlucky/Logs/deploy.log)以上的换成你自己的别照着的我抄,出事我不负责。

6、获取SYNO_CERT_DIR路径,使用ssh命令,putty连接nas的ssh,依次输入命令

sudo -i
cd usr/syno/etc/certificate/_archive/

然后可以看到几个文件夹,应该会有DEFAULT、INFO、SERVICES三个以外还有两个,两个都是nas存放ssl证书的地方,一个是系统自带的,一个是你导入的,两个办法区分,高级点的使用cd命令进去vi查看源码比对(需要会使用ssh和有点解密意识),普通的要么删除自带的证书(不建议)要么删除申请到的,然后ls留下那个那个就是系统自带的,然后导入申请的证书再输入ls,再cd(空格)多出来的文件夹名称。复制前面的的路径/usr/syno/etc/certificate/_archive/那个文件夹,填入SYNO_CERT_DIR的值,这样你的ssh代码就准备好了。

7、上传sh文件到nas指定文件夹,复制它的路径带文件名,在控制面板的任务计划中添加计划,用户账号:root,计划根据你的ssl证书来定,然后任务详情的用户自定义的脚本输入:bash(空格)你的sh文件路径(例如:bash /volume1/docker/goodlucky/aaa.sh),然后保存应该会让你输入密码,保存成功后请点击运行测试,如果看到nas的File Station转圈消失,等待个1分钟等待时间看个人配置,刷新页面如果页面再次出现File Station,那么就是成功了,如果没有在控制面板里重新上传证书或者继续设置回系统自带的证书,控制面板进不去就用ssh删除/usr/syno/etc/certificate/_archive/那个文件夹重启系统,如果还不行重装系统吧。

以下的事说三遍:

1、每一步仔细看仔细弄,慢工出细活!!!!每一步仔细看仔细弄,慢工出细活!!!!每一步仔细看仔细弄,慢工出细活!!!!

2、转载需注明来源与作者!!!!转载需注明来源与作者!!!!转载需注明来源与作者!!!!

3、做好相关备份,做好相关备份,做好相关备份。

4、如果平台不一致不一定可以!!!!如果平台不一致不一定可以!!!!如果平台不一致不一定可以!!!!

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐