EdgeRoute导入SSL证书的正确姿势

edgeroute 路由器的WEB GUI 默认是开启SSL使用https登录的,默认是EdgeOS随机生成的证书,使用浏览器登陆时虽然可以登录,但会提示证书不被信任 。如果你已经给自己的路由器申请了域名(网上有很多免费的域名证书签发服务,比如阿里云的Symantec一年免费证书,StartSSL免费证书,Let’s Encrypt等),这里假定你已经申请好SSL证书了,你会有三个文件 服务器证书 server.crt 服务器私钥 server.key 签发机构的根证书 root.crt 。将证书导入路由器取代系统默认的证书 在网上查得的很多方法是编辑一个server.pem 文件里面的内容格式为:
-----BEGIN RSA PRIVATE KEY-----
server.key内容
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
server.crt 内容
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
签发机构根证书 root.crt 内容
-----END CERTIFICATE-----

这个文件做好后,直接替换 路由器内 /etc/lighttpd/server.pem 然后重启lighttpd服务 就可以了。这种方法对于目前大多数现代浏览器来说都是没有问题的,但是对于少数浏览器 这种把KEY 文件和服务器证书文件,根证书文件合并成一个文件的证书格式 是不被识别的。还会造成浏览报错。

正确的姿势应该是,
创建/config/auth/server.pem 文件里面的内容格式为:
-----BEGIN RSA PRIVATE KEY-----
server.key内容
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
server.crt 内容
-----END CERTIFICATE-----

创建/config/auth/ca.pem文件里面的内容格式为:
-----BEGIN CERTIFICATE-----
签发机构根证书 root.crt 内容
-----END CERTIFICATE-----

然后 sudo chmod 400 /config/auth/ca.pem sudo chmod 400 /config/auth/server.pem
configure
set service gui cert-file /config/auth/server.pem
set service gui ca-file /config/auth/ca.pemcommit
save

这样处理后 证书就正确导入了,兼容浏览器也得到改善了,还有个好处是更新固件 证书也不需要重新导入了

注意下:

configure
set service gui cert-file /config/auth/server.pem
set service gui ca-file /config/auth/ca.pem
commit
save

顶起。 照做做果然ok了

2017.11.25更新。发现usg 3p 竟然屏蔽了set service gui cert-file命令

谢谢分享!

楼主,能再写一篇文章,以Let’s Encrypt为列,详细讲一下使用SSL的步骤吗。
非常感谢

safemode 发表于 2017-11-30 16:34
楼主,能再写一篇文章,以Let’s Encrypt为列,详细讲一下使用SSL的步骤吗。
非常感谢 …

脚本自动安装,我没测试过
https://bbs.ui.com.cn/t/topic/45319/1
三楼

现在还是这个格式吗?导入了一直报错。

成功了。谢谢lz

2.06好像没法用set service gui cert-file命令现在应该怎么办?

这个问题没人回复下吗?