情景回顾

福建泉州的客户反馈, 说系统使用不正常, 经常提示 “网络错误”, 或者点击某些按钮时会进行页面跳转。

让客户试过各种“万能”手段: 比如清缓存, 换浏览器, 换电脑等等,问题依然会复现。

通过QQ远程桌面连接客户的电脑, 使用浏览器的Network控制台, 看到监控信息中莫名出现的加载内容, 如下图所示:

怀疑是客户所使用的宽带运营商存在网页劫持和篡改行为。

让客户换运营商有点不太现实。

然后, 我们将后台管理系统升级为支持https的方式, 成功防止了无良网络运营商的广告注入、以及造成的系统不可用问题。

OK,成功搞定!

其中有一些值得记录下来的点:

  • 1、https网页中的js和css等控制资源, 不能加载 http协议下的资源, 所以使用CDN时需要注意。
  • 2、如果需要兼容 http与https, 则资源可以通过//开头, 如<script src="//xxx.com/xxxx.js" ...
  • 3、https网页中的图片,可以引用http协议的资源。
  • 4、各种http跳转码是运营商的最爱,比如302,404,500等等。
  • 5、GET请求也是安全的,不加密的内容只有域名、IP、端口。
  • 6、HTTPS的好处: 加密传输、防止劫持、冒充、篡改、信息泄露。
  • 7、*.csdn.net 对应的证书、不能用于三级子域名 *.blog.csdn.net

HTTPS, HTTP over TLS, 主要强调的就是传输安全。 详细介绍请参考维基百科: HTTPS-超文本传输安全协议

如今各大互联网公司都已强制全站使用HTTPS。 国内比较知名的有:

  • https://www.qq.com
  • https://www.baidu.com
  • https://www.jd.com/
  • https://www.mi.com/

HTTPS比起HTTP有很多好处, 当然, 成本会高一些, 比如证书的价格问题。

申请证书

现在申请顶级安全提供商的HTTPS证书, 价格已下降很多, 而且针对单个域名还有免费的证书可以申请。

如今各大云厂商都可以申请免费的HTTPS证书, 比如阿里云, 腾讯云等等, 一般来说需要你的域名托管在他们的平台, 否则的话申请会比较麻烦、需要进行一些配置与验证才会颁发证书。

申请免费证书

比如 阿里云免费提供的 “SSL证书”, 由 Symantec. 签发, 每个订单只支持单个明细子域名, 每人最多同时持有20个免费证书。

访问: https://www.aliyun.com/product/cas

然后购买产品时选择具体的购买类型即可。

订单确认之后, 填写具体的域名信息, 如根域名 cncounter.com,

www与根域名可使用同一张明细子域名证书。如 https://cncounter.com 与https://www.cncounter.com;

关于 DV, OV, EV 的区别, 请参考: https://blog.csdn.net/diandianxiyu_geek/article/details/53175214

当然, 企业使用一般得购买通配符证书, 类似 *.cncounter.com 这种。

各家厂商的价格不一样, DV型的通配符域名证书每年约2000左右, OV通配符证书一般上万;

我们单位购买的是 GeoTrust 签发的通配符证书、一次性多购买几年, 算下来价格会优惠很多。

如果查看阿里云官方网站的Https证书,可以看到有效期只有2个月,这样能有效防止证书泄露或者被破解。当然,这需要的人力和IT运维资源也会增加。

部署SSL证书

如果使用阿里云, 可以下载各种格式的证书, 支持 Nginx, Apache, IIS, Tomcat等等。

以 Nginx 为例, 参考: http://www.nginx.cn/doc/optional/ssl.html

下载之后的证书文件,最好是修改为站点相关的名称,例如 cncounter.com.crt 等。

server {listen              80;listen              443 ssl;server_name         cncounter.com *.cncounter.com;ssl_certificate     /usr/local/www/cncounter.com.crt;ssl_certificate_key /usr/local/www/cncounter.key;...proxy_set_header X-Forwarded-Proto $scheme;
}

可在Nginx中配置请求头 X-Forwarded-Proto, 将真实的协议传给Tomcat之类的后端服务器。根据协议, 请求头的名称不区分大小写。

在Tomcat的配置文件server.xml中增加Valve, 请搜索RemoteIpValve, 可大致参考: https://www.oschina.net/question/12_213459

<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="x-forwarded-for" proxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto" />

指定 protocolHeader="x-forwarded-proto", 会将HTTP请求头中 x-forwarded-proto 的值设置为scheme, 这样 request.getScheme(), request.getRequestURL() 方法就能正确获取到客户端真实的协议, 如 https;

当然, 这里是因为我们的部署结构为: Nginx + Tomcat, Shiro拦截的时候需要读取这一信息。

RemoteIpValve的官方文档为: https://tomcat.apache.org/tomcat-8.0-doc/api/org/apache/catalina/valves/RemoteIpValve.html

注意: 如果Tomcat版本不一致,则 RemoteIpValve 可配置的属性会有些差别,参考官方文档进行配置即可。

日期: 2019年01月23日

作者: 铁锚 - https://blog.csdn.net/renfufei

升级https - 解决系统被网络运营商植入广告等问题相关推荐

  1. 如何解决网络运营商对4G网络的限速?

    具体方式见如何解决网络运营商对4G网络的限速?https://www.xjqyc.cn/blog/796.html

  2. 升级Mountain Lion系统后因为 “来自身份不明开发者” 不能打开某些软件的解决方法

    苹果在 Mac OS X 10.8 Mountain Lion 系统里启用了新的安全机制,默认只信任 Mac App Store 下载的软件和拥有开发者 ID 签名的应用程序.换句话说就是 Mount ...

  3. 升级OS10.11系统后 Xcode6.4的变化少了个按钮 could not launch “Xcode” Xcode 插件安装...

    升级OS10.11系统后 Xcode6.4的变化少了个按钮 could not launch "Xcode"  Xcode 插件安装 A:  升级10.11后Xcode 左上角模拟 ...

  4. IHS Infonetics:网络运营商进军SDN

    根据市场研究机构IHS Infonetics最新调查显示:网络运营商作为网络革命的先驱,毅然决然地进军软件定义网络(SDN).IHS Infonetics对SDN战略的调查表明:全球有82%的服务供应 ...

  5. iPhone使用CoreTelephony获得SIM卡网络运营商资讯和通话资料

    注意要加头文件目录 /System/Library/Frameworks/CoreTelephony.framework/Headers 到 build 设置 Header Search Paths, ...

  6. 升级mac最新系统macOS Catalina 10.15

    升级mac最新系统macOS Catalina 10.15 不少人会遇到升级不了最新max系统的情况 比如:此版本的macOS 10.15.1不能按照在这台电脑上 我是10.12升级上去的,普通的从a ...

  7. 不想升级,iOS系统自动更新可彻底关闭! 2016-05-23 16:38 更新/自动/on 昨天笔者发布了一篇关于iOS系统总提醒更新,到底要不要升级的文章,不少读者在微信上留言给笔者, iPhon

    转自:http://www.sohu.com/a/76743973_426094 不想升级,iOS系统自动更新可彻底关闭! 2016-05-23 16:38 更新/自动/on 昨天笔者发布了一篇关于i ...

  8. fedora dnf_如何使用DNF升级Fedora Linux系统

    fedora dnf 将任何操作系统升级到新发行版可能很耗时,并且充满问题. 实际上,术语"升级"甚至不适用. 在过去的很多次中,由于所谓的升级路径将失败,因此我必须执行完全重新安 ...

  9. 云仓系统开发云商系统模式详解

    云仓系统开发(苏铭.188.1414.7927)云仓系统,云仓模式,云仓平台,云商系统,云商模式,云商平台,云仓管理系统,仓配一体化,云仓是个什么概念呢?随便问一个物流经理人可能未必说的会很全面,但是 ...

最新文章

  1. 数字建模matlab,Matlab基础及数学建模.ppt
  2. EnterpriseLibrary2.0系列文章及下载
  3. VS2015编译MuPDF 1.13.0源码(详细)
  4. docker centos node nginx
  5. javascript的数据检测总结
  6. echarts vue 柱状图实例_「源码学习」适用于 Vue3 的 ECharts 包装组件
  7. 谷歌宕机,只有运维背锅吗?
  8. 浮点数的加减计算总结
  9. 【空间分析-文章学习笔记】2 北京各行业的空间分布分析
  10. 使用git命令把自己的代码上传到gitlab上
  11. leftjoin数据量变多_你知道 Sql 中 left join 的底层原理吗?
  12. c语言mud文字武侠游戏,文字武侠mud游戏,纯文字武侠mud游戏手机版预约 v1.0-手游汇...
  13. c++坦克大战 代码免费复制(附源码)
  14. Python计算字符串的长度
  15. JAVA日期转换函数(包括:日期、周数的计算)
  16. hu沪江计算机词汇,拼音带hu的字大全150个拼音含hu的字组词 - 小孩子点读
  17. GitHub完整使用教程
  18. 录屏神器Bandicam 4.34.1503学习版
  19. CISSP-D8-软件开发安全
  20. AI会给世界带来什么变化?世界著名机器人学家关于未来的预言!

热门文章

  1. 天猫总裁张勇:解读天猫社会化物流
  2. 腾讯 AI 医学进展破解“秃头”难题,登 Nature 子刊![转载]
  3. 仿排号系统(微信小程序云开发)
  4. 资源分享 | 平面设计 | 平面设计相关软件快捷键汇总
  5. UG开发实战001:UG8.5安装图文详解(加工环境齐全)
  6. Python全栈开发记录_第七篇(模块_time_datetime_random_os_sys_hashlib_logging_configparser_re)...
  7. jQuery制作鼠标悬停水平滑动门切换特效仿阿里妈妈联盟广告切换特效
  8. 2020校招面试之满帮
  9. 中国有嘻哈——押韵机器人
  10. 汤晓鸥与MIT、宾大教授共话AI:热潮终将退去,人工智能的中国式文艺复兴