解决 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 的外链地址。所以又无形之中增加了网站运营的成本啊(只能妥协,充值了)。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于