为panabit的https管理界面替换有效证书

用了很多年panabit了,相信很多人都在登录panabit时要点击信任排除证书什么的操作习以为常了。最近刚好有时间,就研究了一下替换证书(更关键的是没找到完全贴合我需求的文档,只好自己做一遍记录下来了)

实际上ip也是可以签发证书的,只不过没有免费的,所以我们需要给自己的panabit配置一个域名(多半时候二级域名就可以),并且去letsencrypt申请一个免费的证书(当然免费有免费的缺点,只有3个月有效期,当然你也可以去申请1年有效期的,我由于用的是通配符证书,所有二级域名用一个,反正也要3个月弄一次,所以就拿来直接用了)

//2021-04-07更新 追加自签发证书,更新证书太麻烦了,终于忍不了了,生成自签发根证书,生成了一个100年有效期的IP证书,把自签发的根证书导入系统和火狐浏览器以后就可以使用了,再也不用更新证书啦:)

接下来进入正题,申请域名证书的过程略,网上搜索一大堆,我就不在这里说了。

首先ssh登陆我们的panabit主机,panabit默认用户名root,默认密码panaos。
panabit存放https证书在如下两个路径,带system的是硬盘保持的文件路径,ramdisk是内存运行时的文件路径

1
2
/usr/system/admin/admin.pem
/usr/ramdisk/admin/admin.pem

我们需要替换2个文件中的证书,通过vi编辑文件,删除掉原有内容,将letsencrypt申请的证书文件cert.pem和privkey.pem里的内容依次粘贴进去即可,当然如果你命令行操作不熟练,可以使用WinSCP把文件下载下来改完在上传,注意协议要选SCP才可以连上。

接下来,懒人可以直接重启panabit服务器了,当然如果你直接重启服务器的话,前面是不用替换ramdisk目录那个文件的。

我替换2个文件的原因是不想重启就让它生效,搜了一些文章发现没有写怎么停和起https服务的,于是自己研究了一下,发现/usr/system/bin/ipectrl这个脚本,脚本里有启动的命令,于是就知道了怎么停止https服务了:)

停止https服务的命令

1
/usr/system/bin/ipectrl stop httpd

注意,此时已经生效了,因为panabit的https服务有守护进程,结束了会被立刻启动的。

当然,如果你没有启动,可以用下面命令启动一下

1
/usr/system/bin/ipectrl start httpd

至此就完成panabit上面的配置,还差最后一步,本来我想直接改hosts文件了事,结果浏览器告诉我不安全,所以又去设置了一下我的这个二级域名解析,给它解析到我的内网IP了,当然不用担心安全问题,毕竟别人不知道你这个域名,也访问不了你的内网,再说就算泄露也顶多泄露了你这个内网管理地址而已。

至此,终于可以直接通过域名打开panabit管理界面,看到绿色盾牌图标了:)

然而,并没有结束,此时的证书在部分浏览器里显示正常,但是很多默认不启用TLS1.2以下支持的浏览器依然会提示网站使用较弱的加密,接下来我们升级panabit的openssl。

打开下面网址,下载最新的openssl应用组件,我下的20200915版本的,限制panabit版本,需要2020年7月1号,NANBEIr5以上的版本才能使用,所以你可以能需要顺便升级一下panabit的版本。

注:openssl组件里就有网页替换证书的功能了,不过我没研究它支持什么版本,我用免费证书直接导入是失败的,反正用前面我的手动方法好用就可以了。