youBBS 已支持最简单的https 开启方式
这种简单的方式全依赖 golang 官方库 golang.org/x/crypto/acme/autocert ,前些天因为Let’s Encrypt 停用 tls-sni ,该库不能正常使用,昨天 alex 大神更新了:支持 http-01 认证。就修改了youBBS 的代码,同时支持两种方式:
1)最简单的方式
修改配置文件 config/config.yaml 下面三项:
Main:
HttpPort: 80
HttpsOn: true
Domain: "yourdomain.com"
下面两个一定要留空:
TLSCrtFile: ""
TLSKeyFile: ""
2)用其它工具生成 crt 和 key ,在配置文件里填上它们的路径,如:
Main:
HttpPort: 80
HttpsOn: true
Domain: "yourdomain.com"
...
TLSCrtFile: "/root/ssl/chained.pem"
TLSKeyFile: "/root/ssl/domain.key"
生成的具体方法参考 https://www.youbbs.org/t/2169
0
See Also
- php版的youbbs好像只支持php5.6?
- youBBS现在支持支付宝积分充值吗?
- 对youBBS 做了一个简单二次开发
- 给youBBS 配置免费https
- youBBS如果支持markdown就好了
Nearby
- 上一篇 › youbbs安装出错
- 下一篇 › acme/autocert 库更新,支持 http-01
哈哈,已测试,不支持@+www两个域名。只支持一个。
我是独占80/443端口,也就是没加nginx等前端转发。
另外证书到期更新,我也觉得也会有问题。因为在已443的状态下,验证域名会失败。
程序v
@qoo酷儿 这是你说的情况吗
@qoo酷儿 可注册多个域名了
程序同时也监听80 端口
详情说下,参照这里:https://www.youbbs.org/t/2170
生成证书毫无问题,但生成之后,启用443之后,要再更新下证书就报错了,域名验证不通过,没法更新证书日期。仔细看了下,发现是因为在
HttpsOn: true
状态之下,无论重生成证书还是更新日期,都不行,只有改回 false 换回80端口,就正常了。尝试将 acme_tiny.py 里的报错123行,把 http 改成 https 来验证域名,还是没成功。
其实放在静态目录的 /static/test.txt 无论80还是443都能访问的,但就是没通过域名验证
http://youbbs.org/.well-known/acme-challenge/test.txt
https://youbbs.org/.well-known/acme-challenge/test.txt
预感,这问题依旧存在。
另,还发现个Bug,因为懒,没用nginx前端,也没使用进程守护,就 ./goyoubbs & + 写入 rc.local ,测试中,发现要是 kill -9 掉进程后再一次 ./goyoubbs & 的话,竟然关闭ssh就失效的情况,不想排查原因了,每次干脆就reboot 重启算了,再发现,竟然重启了,程序的在线时间竟然没重置啊……
本站已稳定运行 X 天
@ego008 第一时间就试过了,加上www域名上去了,不行,简单点的问题还是会动手的。
倒是不明白下面的 maindomain 又是什么关系,因为是独占80/443端口的了,127.0.0.1:8082 我改成 domain.com 了
哈哈,刚把证书的目录删了,再测试就全挂了,好像是验证服务那边挂了……
@qoo酷儿 多域名已测试通过
如果不成功请下载最新主程序 https://github.com/ego008/goyoubbs/commit/a08adda8f90ffb578dd4eff51b50ed5561f83500
自动更新可能会有问题,路由冲突,晚点测试。
@qoo酷儿 利用 acme_tiny.py 生成、更新证书都正常,稍不同的是:生成时只开启 80 端口,更新时 80 、 443 端口都要开。80 端口过来的请求都转向了,HttpsOn: true 不影响更新。
用 & 关闭 ssh 就失效的情况我也遇到过,可能情况不同,如果是让 ssh 窗口自己过期关闭就可能失效,要敲 exit 退出。
调用 MainDomain 的地方
https://github.com/ego008/goyoubbs/search?utf8=✓&q=MainDomain
把证书目录删掉后 acme/autocert 会自动再次生成,但它没有输出更多的 log ,如果申请不成功可能是Let’s Encrypt 的限制,具体参考 https://letsencrypt.org/docs/rate-limits
前面个人担心的路由问题不存在,使用两种方式都不冲突。
@ego008 那就奇怪了,之前更新证书都遇到问题,更新出来的signed.crt 都是空的,也就是这一步没成功
可能是acme_tiny.py也更新了。ssh掉线程了没啥,只是重启之后,程序的在线时间没更新,结果就是网站的在线时间比vps上的uptime 还长……