Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

已有证书的情况下,能否跳过申请证书步骤,直接导入到群晖? #102

Open
McGuffinCN opened this issue Jun 13, 2023 · 3 comments

Comments

@McGuffinCN
Copy link

我已经用Nginx Proxy Manager定期更新证书了,所以不需要自动申请的功能,只需要把NPM的证书更新到群晖里,请问该如何实现?

@Subdue0
Copy link

Subdue0 commented Nov 23, 2023

写了一个脚本自动替换群辉默认证书,但是替换了以后,并没有效果,页面上面的证书还是之前的,但是我从web中重新导入一次,又是最新的证书,头都大了,有人遇到和我一样的问题吗?

@iit8
Copy link

iit8 commented Apr 14, 2024

写了一个脚本自动替换群辉默认证书,但是替换了以后,并没有效果,页面上面的证书还是之前的,但是我从web中重新导入一次,又是最新的证书,头都大了,有人遇到和我一样的问题吗?

萌新小白遇到了相同的情况,主机端918-6.23up3,其他分机都是3617-6.17up3,主机端因为有FTP服务,所以分机尝试用群晖自带的lftp从主机端的acme获取到证书的域名文件夹内get到分机已成功,再替换到分机端/usr/syno/etc/certificate的几个文件夹内,然后把njinx再reload一下,确定了下路径正确,内容成功替换,但是怎么刷新都是原来的证书。web中导入的话一切正常。

@iit8
Copy link

iit8 commented Apr 14, 2024

写了一个脚本自动替换群辉默认证书,但是替换了以后,并没有效果,页面上面的证书还是之前的,但是我从web中重新导入一次,又是最新的证书,头都大了,有人遇到和我一样的问题吗?

我要被自己蠢哭了,我一直只替换了这几个文件夹的证书,忘了分机全用的群晖自己的反代访问的,还需要替换反代的证书
/usr/syno/etc/certificate/_archive/DEFAULT 内的文件夹内的证书应该是导入的不同证书文件夹,我看几个教程都只替换了这个。
/usr/syno/etc/certificate/system/default
/usr/syno/etc/certificate/smbftpd/ftpd
/usr/syno/etc/certificate/ReverseProxy 内的文件夹就是反代的证书,文件夹名字随机生成的,每个文件夹一个反代,我就是一直在替换其他3个文件夹的证书,这个文件夹下的证书一直没有换,所以通过反代访问还是未更新的证书。
这是我各种教程拼接来的。

#!/bin/bash

#定义FTP服务器连接信息
HOST='1.2.3.4'
USER='youruser'
PASSWD='yourpw'
#远端证书文件存储路径
REMOTE_DIR='/admin-file/ssl/acme.sh/DOMAIN.com'
#本地证书文件存储路径
LOCAL_DIR='/volume1/cache/ssl'
#默认证书文件存储路径
file_path=$(cat /usr/syno/etc/certificate/_archive/DEFAULT)
#文件1
file1=DOMAIN.com.cer
#文件2
file2=DOMAIN.com.key
#文件2
file3=fullchain.cer

#连接FTP服务器并传输文件
echo $(date +%F%n%T)连接FTP服务器并传输文件
lftp $USER:$PASSWD@$HOST <<eof
cd $REMOTE_DIR
get $file1 -o $LOCAL_DIR
get $file2 -o $LOCAL_DIR
get $file3 -o $LOCAL_DIR
eof
echo $(date +%F%n%T)连接FTP服务器并传输文件完毕

#获取证书路径
TARGET_DIRS=(
"/usr/syno/etc/certificate/_archive/$(head -n1 /usr/syno/etc/certificate/_archive/DEFAULT | xargs echo -n)"
'/usr/syno/etc/certificate/system/default'
'/usr/syno/etc/certificate/smbftpd/ftpd'
'/usr/syno/etc/certificate/ReverseProxy/3e25c150-baa6-4f42-afae-f78e9f93bab8'
'/usr/syno/etc/certificate/ReverseProxy/7101db3a-c841-4d04-b305-82ddd090a1cf'
'/usr/syno/etc/certificate/ReverseProxy/3101048c-bcba-43e5-bcd1-756fea761412'
)
#拷贝证书
copy_certs() {
echo $(date +%F%n%T)拷贝证书
for dir in "${TARGET_DIRS[@]}"; do
install -m 400 "$LOCAL_DIR/$file1" "$dir/cert.pem"
install -m 400 "$LOCAL_DIR/$file2" "$dir/privkey.pem"
install -m 400 "$LOCAL_DIR/$file3" "$dir/fullchain.pem"
done
echo $(date +%F%n%T)拷贝证书完毕
sleep 5
}
#重启WEB服务
restart_services() {
echo $(date +%F%n%T)重启WEB服务
nginx -s reload
sleep 5
echo $(date +%F%n%T)重启WEB服务完毕
}

echo '---------------'$(date +%F%n%T)'---------------'
copy_certs
restart_services
sleep 20
echo $(date +%F%n%T)删除证书
rm -f $LOCAL_DIR/$file1
rm -f $LOCAL_DIR/$file2
rm -f $LOCAL_DIR/$file3
echo $(date +%F%n%T)删除证书完毕

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants