https无法加载百度分享,百度分享不支持https的解决方案,https设置后网页错乱。

https是目前比较流行的网络建站技术,最近自己也用到了https,网站设置https的技术这里不讲解,需要的同学请自行百度。

timg.jpg

网站加载https之后会出现百度分享无法加载的问题,这里给出解决办法,当然我也是伸手党。

感谢这位技术老哥的奉献:https://www.hrwhisper.me/baidu-share-not-support-https-solution/

使用方法

1、下载压缩包:
baiduShare-master.zip

2、static 解压后丢到站点的根目录

这里需要确保要确保“根目录”能被访问到,比如我的wordpress确实就是丢到根目录即可
其它的比如hexo其实时放在public目录下,如果不行可以在配置文件中添加如下内容,禁止hexo编译static文件夹
skip_render:
– static/**

3、修改代码
然后对应的百度分享代码中,把http://bdimg.share.baidu.com/改为 /

.src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
改为
.src='/static/api/js/share.js?v=89860593.js?'];</script>

https设置后网页错乱!

Q:为什么开启HTTPS之后,用HTTPS访问出现页面加载错位?

A:请检查页面加载是否是调用的HTTP的资源。因为浏览器默认是不允许在HTTPS里面引用HTTP资源的,一般都会弹出提示框,用户确认后才会继续加载,这样的话用户体验非常差。而且如果在一个HTTPS页面里动态的引入HTTP资源,比如引入一个js文件,会被直接block掉的。

Q:如何解决HTTPS不调用HTTP资源的问题?

A:对于同时支持HTTPS和HTTP的资源,引用的时候要把引用资源的URL里的协议头去掉,例如://www.example.com/scirpt.js,这样相当于相对路径,即浏览器会自动根据当前是HTTPS还是HTTP来给资源URL补上协议头的,可以达到无缝切换。如果是站内资源,最好是HTTP和HTTPS各一份,然后再通过相对路径的方式引用,这样就可以完美的解决掉这个问题了。
附上360详细解决方案:https://bbs.360.cn/thread-7015865-1-1.html

Q:为什么出现证书不信任?

A:请确保您是否上传/申请证书后,等待了10-20分钟。并且确保页面上不存在HTTP的资源调用。如果是,请确认您的电脑系统版本/浏览器版本是否不支持TLS/SNI。
t01c8209d6f3ef6ce31.png

https和http共存nginx配置写法

server {

listen 80;

listen 443 ssl;

server_name localhost;

#ssl on;

root html;

index index.html index.htm;

ssl_certificate cert/a.pem;

ssl_certificate_key cert/a.key;

ssl_session_timeout 5m;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

location / {

root html;

index index.html index.htm;

}

}

切记80、443端口必须打开!

其他apche和汤姆猫请自行百度解决。

最后编辑:2019年04月17日 ©著作权归作者所有

发表评论

×