KoolShare

 找回密码
 立即注册
搜索
查看: 15428|回复: 52

[教程] 【R7000】梅林固件 AiCloud ssl 证书不对的解决办法

  [复制链接]

14

主题

131

帖子

389

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
347
魔法值
0
注册时间
2016-2-27
发表于 2016-3-16 02:17:42 | 显示全部楼层 |阅读模式
本帖最后由 huangyewudeng 于 2016-10-5 18:00 编辑

(PS: 本文不讨论如何给梅林固件的路由器刷新自己的合法的证书,如果有朋友需要这个教程,我下次再发)

2016-03-16 通过AiCloud 左下角的设置菜单,可以临时加载自己的SSL证书,但是在重启后就会失效。因此还是按照本文的方法来做的好。
如果你有更好的办法,欢迎指出。

这里假设ddns 绑定的自定义域名是   aaa.com

情况是这样的:
访问路由器管理界面  http论坛不准发链接s://aaa.com:8443时,证书是ok的,但是访问 AiCloud ( http论坛不准发链接s://aaa.com) 时证书是merlin 自动生成的192.168.1.1 的自签名证书.
测试很久,一直没解决。
如下图:访问路由器管理界面SSL证书是ok的: Ashampoo_Snap_2016.03.16_02h23m45s_013_.png

如下图,AiCloud ssl 证书不对:
Ashampoo_Snap_2016.03.16_02h40m26s_015_.png



无奈把 1.2 GB 的 asus merlin 源代码下载下来并解压,然后找到所在:
release/src/router/APP-IPK/AiCloud-ipk/opt/etc/apps_asus_script 目录下,有一个gencert.sh 文件.

lighthttpd 对于AiCloud 的443端口,配置的默认证书位置是 /etc/server.pem
我怎么知道的? cat /tmp/lighttpd.conf 就能知道.

但是 /etc/server.pem 总是在路由器重启之后会还原。然后, gencert.sh 也会自动生成自签名证书,这样就把我们自己的证书给弄没了。
导致,明明有合法的证书,却还是用的它自签名的。。。 于是浏览器老是抱怨。

于是我想到解决办法:

或者,开机启动时,执行我们的 fix-cert , 其内容如下:
  1. #!/bin/sh

  2. #################################################
  3. # fix-cert v1.0.0
  4. # 修复AiCloud ssl 证书问题
  5. # 作者: 荒野无灯
  6. # 时间: 2016-03-16
  7. #################################################

  8. cp /jffs/aidisk_ssl/server.pem /etc/server.pem
  9. cp /jffs/aidisk_ssl/key.pem /etc/key.pem
  10. cp /jffs/aidisk_ssl/cert.pem /etc/cert.pem
复制代码
然后在 /jffs/scripts/init-start 中添加一行:
  1. /jffs/aidisk_ssl/fix-cert
复制代码


我这里采用的是后面的方法.  这样就ok了。
修复之后的截图:
Ashampoo_Snap_2016.03.16_02h23m10s_012_.png

Ashampoo_Snap_2016.03.16_02h36m46s_014_.png







评分

2

查看全部评分

14

主题

131

帖子

389

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
347
魔法值
0
注册时间
2016-2-27
 楼主| 发表于 2016-3-16 02:22:40 | 显示全部楼层
本帖最后由 huangyewudeng 于 2016-3-17 10:31 编辑

key.pem 是私钥
cert.pem 是证书注意这两个文件的最后增加一行空行回车。这样在合并这两个文件到 server.pem 时才不会发生问题。

server.pem 是前二者合并起来的

点评

原来楼主就是荒野无灯,我可是twitter上关注你的关注啊!  发表于 2016-3-22 10:22

4

主题

92

帖子

563

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
531
魔法值
0
注册时间
2015-11-14

DDOS纪念勋章

发表于 2016-3-16 02:25:21 | 显示全部楼层
大神你好, 用过你老多插件, 呵呵..

14

主题

131

帖子

389

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
347
魔法值
0
注册时间
2016-2-27
 楼主| 发表于 2016-3-16 02:32:59 | 显示全部楼层
nwo 发表于 2016-3-16 02:25
大神你好, 用过你老多插件, 呵呵..

  好巧,这里也能遇到

185

主题

3540

帖子

8285

积分

KoolShare开发组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

精华
2
门户文章
0
魔力币
4476
魔法值
0
注册时间
2014-11-21

DDOS纪念勋章AC68UR8500

发表于 2016-3-16 08:28:50 | 显示全部楼层
楼主好厉害,求交流,加求好友!能用上自己的免费证书确实是非常不错的,求下一篇帖子~~~

12

主题

551

帖子

1633

积分

大魔法师

BB,BB,BB

Rank: 5Rank: 5

精华
0
门户文章
0
魔力币
1401
魔法值
0
注册时间
2015-8-23
发表于 2016-3-16 10:19:57 | 显示全部楼层
其实server.pem是key和cert拼起来的...没有必要替换吧...

我现在是开机用脚本替换key+cert+中间证书,重启web服务器...

效果是一样的...

291

主题

516

帖子

668

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
187
魔法值
0
注册时间
2015-10-24

DDOS纪念勋章

发表于 2016-3-16 16:32:15 | 显示全部楼层
合法证书怎么弄出来比较关心

14

主题

131

帖子

389

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
347
魔法值
0
注册时间
2016-2-27
 楼主| 发表于 2016-3-16 16:40:23 | 显示全部楼层
jvx68 发表于 2016-3-16 16:32
合法证书怎么弄出来比较关心

下一帖会介绍。

4

主题

70

帖子

681

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
651
魔法值
0
注册时间
2015-11-7

DDOS纪念勋章

发表于 2016-3-17 08:19:40 | 显示全部楼层
顶起来,求楼主快快分享

1

主题

125

帖子

613

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
584
魔法值
0
注册时间
2015-8-1

DDOS纪念勋章

发表于 2016-3-17 09:06:20 | 显示全部楼层
学习了!!!!

114

主题

2889

帖子

1万

积分

版主

bbis

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

精华
2
门户文章
1
魔力币
7067
魔法值
0
注册时间
2015-11-1

DDOS纪念勋章AC68UR6300R7000那些年参与勋章R6400

发表于 2016-3-17 09:12:29 | 显示全部楼层
猴赛雷!
نگو نه ،بگو بله .

7

主题

129

帖子

612

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
563
魔法值
0
注册时间
2016-2-6
发表于 2016-4-17 21:48:13 | 显示全部楼层
我是小白,请问以下描述如何操作。谢谢!

“用mount --bind 替换掉gencert.sh ( 系统的gencert.sh 在  /usr/sbin/gencert.sh) 为我们自己的脚本 fix-gencert ”

12

主题

199

帖子

602

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
528
魔法值
0
注册时间
2015-7-20
发表于 2016-4-17 22:18:20 | 显示全部楼层
请求大神我也有这个问题,一直想着怎么解决呢,谢谢啦

PS:衍生一下:我用SYNOLOGY开网站也是一样,因为中国不支持80端口,所以只能自己用443,但是问题来了,小伙伴们打开网址的时候必须加上HTTPS,然后会看到一个不安全提示,再确定以后方能看到网站内容,不知道大神有否办法解决这一困境

14

主题

131

帖子

389

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
347
魔法值
0
注册时间
2016-2-27
 楼主| 发表于 2016-4-19 11:56:03 | 显示全部楼层
borisbsr 发表于 2016-4-17 22:18
请求大神我也有这个问题,一直想着怎么解决呢,谢谢啦

PS:衍生一下:我用SYNOLOGY开网站也是一样,因为中 ...

我没有用SYNOLOGY
不过从你的描述来看,SYNOLOGY 应该 会自带上传SSL证书的功能。
你在设置里找找看。

14

主题

131

帖子

389

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
347
魔法值
0
注册时间
2016-2-27
 楼主| 发表于 2016-4-19 12:42:42 | 显示全部楼层
yale2000 发表于 2016-4-17 21:48
我是小白,请问以下描述如何操作。谢谢!

“用mount --bind 替换掉gencert.sh ( 系统的gencert.sh 在  /u ...
  1. mount --bind /jffs/aidisk_ssl/fix-gencert /usr/sbin/gencert.sh
复制代码

7

主题

129

帖子

612

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
563
魔法值
0
注册时间
2016-2-6
发表于 2016-4-19 13:41:16 | 显示全部楼层

谢谢了。确实替换了文件,但重启后文件有打回原形。
参考你的另一贴,更换了自己的SSL证书和密匙,但重启后变回原版的。记得第一次是行的,改来改去不知道就不行了。是不是忽略那个参数了?

14

主题

131

帖子

389

积分

中级魔法师

Rank: 3Rank: 3

精华
0
门户文章
0
魔力币
347
魔法值
0
注册时间
2016-2-27
 楼主| 发表于 2016-4-20 23:02:01 | 显示全部楼层
yale2000 发表于 2016-4-19 13:41
谢谢了。确实替换了文件,但重启后文件有打回原形。
参考你的另一贴,更换了自己的SSL证书和密匙,但重启 ...

你用我 帖子中说的第二种方法,也就是:
“或者,开机启动时,执行我们的 fix-cert , 其内容如下:” 这句话下面的。我现在就是用这个方法fix的。

7

主题

129

帖子

612

积分

高级魔法师

Rank: 4

精华
0
门户文章
0
魔力币
563
魔法值
0
注册时间
2016-2-6
发表于 2016-4-21 09:32:19 | 显示全部楼层
huangyewudeng 发表于 2016-4-20 23:02
你用我 帖子中说的第二种方法,也就是:
“或者,开机启动时,执行我们的 fix-cert , 其内容如下:” 这句 ...

很悲剧,第二种方法也是一样。重启还是原文件啊。。。

4

主题

68

帖子

157

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
142
魔法值
0
注册时间
2015-7-13
发表于 2016-4-21 13:29:52 | 显示全部楼层
然后在 /jffs/scripts/init-start 中添加一行:

scripts 下面没有 nit-start 这东西.只有
nat-start
wan-start

4

主题

68

帖子

157

积分

初级魔法师

Rank: 2

精华
0
门户文章
0
魔力币
142
魔法值
0
注册时间
2015-7-13
发表于 2016-4-21 13:47:20 | 显示全部楼层
本帖最后由 hbmask 于 2016-4-21 13:48 编辑
huangyewudeng 发表于 2016-3-16 02:22
key.pem 是私钥
cert.pem 是证书注意这两个文件的最后增加一行空行回车。这样在合并这两个文件到 server.pe ...

楼主的教程,我看得稀里糊涂的,希望楼主解惑.

用mount --bind 替换掉gencert.sh ( 系统的gencert.sh 在  /usr/sbin/gencert.sh) 为我们自己的脚本 fix-gencert ,   fix-gencert 内容如下:
#!/bin/sh

#################################################
# fix-gencert v1.0.0
# 修复AiCloud ssl 证书问题
# 作者: 荒野无灯
# 时间: 2016-03-16
#################################################

cat /jffs/aidisk_ssl/key.pem /jffs/aidisk_ssl/cert.pem > /etc/server.pem
复制代码
然后在 /jffs/scripts/init-start 中添加一行:
/jffs/aidisk_ssl/fix-gencert


这一段,cat 查看 key.pem 什么的,我对命令不太了解.

我跟着操作,也跟着楼主回复的mount --bind 操作替换了.
但是我的scripts 确实没有init-staart..
那么我要
  1. /jffs/aidisk_ssl/fix-gencert
复制代码

放在哪里呢.

  1. #!/bin/sh

  2. #################################################
  3. # fix-cert v1.0.0
  4. # 修复AiCloud ssl 证书问题
  5. # 作者: 荒野无灯
  6. # 时间: 2016-03-16
  7. #################################################

  8. cp /jffs/aidisk_ssl/server.pem /etc/server.pem
  9. cp /jffs/aidisk_ssl/key.pem /etc/key.pem
  10. cp /jffs/aidisk_ssl/cert.pem /etc/cert.pem
复制代码


这段代码的意思是,aidisk 里面的 文件复制到 etc 进行覆盖吗?

  1. /jffs/aidisk_ssl/fix-cert
复制代码

我以为脚本都要加.sh后缀呢


但是我都按照教程走.貌似直接访问https 的时候依然是一把红叉啊..什么情况

我在webshell里面执行 /jffs/aidisk_ssl/fix-gencert 依然是把红叉.
这个直接 webshell /jffs/aidisk_ssl/fix-cert 貌似说找不到文件
-sh: /jffs/aidisk_ssl/fix-cert: not found 

联系我们|手机版|KoolShare ( 沪ICP备13045430号 )

GMT+8, 2018-9-23 19:06 , Processed in 0.063072 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表