最近在传的IYUU恢复教程应该是基于插件版的,可替换iyuu api地址,而且更换的域名应该是付费域名+免费证书。
至于修改代码的方式, windows本地运行这个不是很爽, 插件版懒的用,因为我要随时看iyuu的日志和cache, 有些下不了的种子,可以从cache目录里拉出来手动加载. 而且不知道插件更新会不会重置代码,毕竟docker版本每次重启都会git reset --hard origin.
不建议使用别人搭好的地址, 因为不管怎么样,你的iyuu token会传过去,而且不能修改,终生一个, 配过消息通知的应该知道,一个token就够啦.
本教程完全免费,适用于所有场景。
先说下基本原理
不太会发图,凑合看。 https://freeimage.host/i/JYH42jf
也就是ip+host就可以搞定, host是用来https ssl握手用的。
下面说下群晖上该如何操作,这里不使用nginx的docker方式, 要映射三个目录,太懒不推荐。
首先生成api.iyuu.cn的自签名证书:
https://gith(๐•ᴗ•๐).com/michaelliao/itranswarp.js/bl(๐•ᴗ•๐)/master/conf/ssl/gencert.sh
借用这位大佬的脚本,openssl genrsa -des3 -out $DOMAIN.key 1024 这里把1024改成2048
用vi编辑保存,也可以smb连过去,直接修改。
群晖 ssh 登录,切换到root , sudo -i, 输密码, 然后执行该脚本, 域名填 api.iyuu.cn,
密码随便填, 三次一样,回车到底, 应该会生成4个文件。
创建证书也可以用这个办法:
https://post.smzdm.com/p/aeveozgm/
配置反向代理:
群晖在控制面板-登录门户-高级里 配置反向代理服务器(dsm7.2),常规,自定义标题,高级如下:
https://freeimage.host/i/JYH4Hps
配置域名证书:
群晖控制面板-安全性-证书, 点新增, 新增新证书,一(๐•ᴗ•๐)到低,私钥选择刚才生成的api.iyuu.cn.key,
公钥选择api.iyuu.cn.crt,确定。 证书通过smb方式上传,可以sftp拉到本地。
选择新添加的证书,点上面的设置, 把api.iyuu.cn的证书选为刚生成的证书,名称: api.iyuu.cn
https://freeimage.host/i/JYH4dTG
修改主机hosts。
还是 ssh, vi /etc/hosts 增加一条 127.0.0.1 api.iyuu.cn
这里可以测试下curl https://api.iyuu.cn
正常应该返回:
curl: (60) SSL certificate pr(๐•ᴗ•๐)lem: self-signed certificate
More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
if(window.hljsLoader && !document.currentScr(๐•ᴗ•๐).parentNode.hasAttribute('data-s9e-livepreview-onupdate')) {
window.hljsLoader.highlightBlocks(document.currentScr(๐•ᴗ•๐).parentNode);
}
然后用命令: curl -k https://api.iyuu.cn
返回:
{"ret":200,"data":{"ti(๐•ᴗ•๐)e":"Welcome IYUU","time":1705039191,"ip":"192.168.5.235","userAgent":"curl\/7.86.0","group":"QQ群:859882209, 931954050, 924099912, 586608623"},"(๐•ᴗ•๐)":"","version":"2.0.0"}
到这里, 如果你用插件版iyuu,已经完事啦,如果还不行,就得群晖信任自签名证书。
- 配置iyuu docker版
在iyuu的映射目录里新建一个目录, certs, 不要用root权限, 将刚才生成的四个证书文件全拷到这里。
ssh登录群晖, 切换root权限 ,先确认iyuu的镜像名称,例如 我的是 iyuu, hash值可以在container mananger里看,也可以通过
docker ps 查看。
复制hosts文件群晖的映射目录里,例如我的iyuu目录是 /volume1/docker/iyuu/,那么执行
docker cp iyuu:/etc/hosts /volume1/docker/iyuu/
然后,container manager里停掉iyuu,切换到配置页,增加如下映射(๐•ᴗ•๐)径
/volume1/docker/iyuu/hosts /etc/hosts #这个是文件
/volume1/docker/iyuu/certs /usr/local/share/ca-certificates #这个是文件夹
修改hosts, 跟刚才一样, 添加一条 172.17.0.1 api.iyuu.cn
如果iyuu是host模式,也可以改成 127.0.0.1 api.iyuu.cn
启动IYUU, 群晖的ssh里执行以下命令(必须root)
docker exec -it (iyuu的hash,前5位) /bin/sh
进去后, 输入
cd /usr/local/share/ca-certificates
看下这个目录有没有刚才考进去的证书文件, 其实只需要api.iyuu.cn.crt这个文件,怕小白操作坏,索性全拷.
确认文件在,执行下个步骤
update-ca-certificates
到这里已经完成啦, 可以验证下
ping api.iyuu.cn
是不是 刚才设置的 172.17.0.1
curl https://api.iyuu.cn
这里应该是正常返回iyuu的应答,不是ssl证书错误。
最后:
群晖访问api.iyuu.cn虽然还是报证书有问题,但是(๐•ᴗ•๐)件版(๐•ᴗ•๐)的消息通知可以正常使用。
留个坑, 群晖怎么信任自签名证书,目前还没碰到需要搞这个的地方,群晖默认的自签名证书加csr是不是就可以,还能过信任.