解决 Solo 在 HTTPS 模式下各种问题
1.开启 HTTPS 模式后七牛上传异常问题
最近我的博客 https://www.mzlion.com/由 HTTP 升级到 HTTPS,升级完成后随意浏览了下,发现没什么问题,内心表示升级非常顺利(嘚瑟)。但是今天发文的时候,发现图片无法上传到七牛云。
This request has been blocked; the content must be served over HTTPS.
发现这个问题的时候,开始尝试从服务端 Nginx 进行配置,希望将一些后台管理的 url 不强制转为 https,结果发现 solo 的后台地址分配的比较恶心,没有规则可找。再者加上我对 Nginx 不是很熟悉,所以折腾了一段时间还是选择放弃。关键发现 solo 上传图片到七牛云时直接在客户端完成的,想着能否从前端修改,经过研究(就是摸索)解决方案如下。
- 首先打开浏览器的
F12,即调试功能,然后点击上传按钮选择一个图片,就会看到一段异常信息,其中就有七牛的上传接口地址:http://upload.qiniu.com(抱歉,我忘记截图现在就没法截图了。) - 全局搜索项目
solo-1.7.0,这里我是用的是Sublime Text,它可以搜索某个目录的文件内容,搜索条件是http://upload.qiniu.com

- 将这 3 个文件里的地址
http://upload.qiniu.com替换为https://up.qbox.me

解决完成,强制刷新浏览器(Ctrl+F5),然后就可以上传图片到七牛云了。
2.开启 HTTPS 之后 Solo 的推荐文章功能失效问题
开启 HTTPS 之后,突然发现 Solo 根据你当前文章的 Tags 会拉取一些推荐文章,但是这个功能在 HTTPS 模式下失效,其实问题和上面的上传图片到七牛云一致的,所以 HTTPS 里面使用了 http 的问题,下面就给出解决方案。

- 依然从项目
solo-1.7.0里进行搜索,搜索条件get-articles-by-tags.do0

- 强这 4 个文件里的地址
http://rhythm.b3log.org:80/get-articles-by-tags.do替换为https://rhythm.b3log.org:443/get-articles-by-tags.do

3.404 页面问题
解决方案跟上面的一样
4.开启 HTTPS 之后需要后台配置文件 latke.properties
这个官网有讲,只是这里再顺到提一下,HTTP 过渡到 HTTPS 后,需要将里面的 serverScheme=http 改为 serverScheme=https,端口可以改成 443 也可以不改。
问题总结
开启了 HTTPS 之后出现的问题还是蛮多的,所以升级 HTTPS 需要考虑成本。除了上面的问题之外,引用的资源文件(link,script,img)也会比较麻烦了,如果引入了 http 的话,浏览器绿色的锁 https 就没了,仍然提示当前网站引入了不安全的链接,这样 HTTPS 的效果就不那么好。
所以一旦网站启用了 HTTPS,那么里面就不要包含 HTTP 的请求了,否则浏览器还是会给出不安全的提示,也许到了 2017 年的话,直接给出红叉叉的提示了。
七牛云默认外链地址是一个仅供测试使用的地址,不支持 https,想要支持 HTTPS,需要往账户里进行先充值(余额不能少于 10 元),然后新增的一个 HTTPS 的外链地址。所以又无形之中增加了网站运营的成本啊(只能妥协,充值了)。



欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于