https填坑之旅
Boss说,我们买了个权威证书,不如做全站式的https吧,让用户打开主页就能看到受信任的绿标。于是我们就开始了填坑之旅。
【只上主域好不好?】
不好。。。console会报出一大堆warning因为图片域没有https~浏览器证书符号也不是绿色的~
【在哪里解密SSL?】
大网站都是架构复杂的啦~各层负载均衡和动静分离~其中最经典的就是图片和应用分离,这也导致了我们要给两个域配证书。
想过在NginX配,好处是在一台机上只配一个证书,坏处是多个机器的配置难以管理,所以只好在前面HA层配~
具体怎么配网上很多教程啦~大概就是配置指向一个文本文件,里面是域名和证书的列表。
【测试环境怎么办?】
凉拌呗~用openssl生成几个自签证书就结了~然后自己手动导入到浏览器就可以愉快玩耍了~
大概会是这样
http://www.centoscn.com/CentOS/config/2014/0220/2423.html
有几个要点:
1.刚开始的私钥是有密码保护的,但是放在服务器中一般是直接使用的,所以要把该私钥转换成无密码保护的。
2.pem文件等于:crt证书+私钥,密码体系pem、X509之类的各种国际标准就不展开了,总之就是些机构信息、密钥、摘要等。
3.想偷懒的可以签给*.主域.com,但这样就没法提前在测试环境踩坑填坑了,多证书的情况终归是不同的。
4.密钥和证书的400权限设置,非生产环境可随意~
【HSTS好不好?】
当然好,全站式https就该开启HSTS严格传输安全,直接在浏览器就帮你把http转为https请求,而不用301回来跳转。
然而如果有个别页面确实还没上https,那就没办法了~
【烂鬼证书商,在手机浏览器打不开?】
怎么可能啊,证书供应商是权威机构,怎么会在安卓里没根证书啊?一般排查之后发现,安卓里确实是有证书商的根证书的。再几番查资料之后才发现,要配置ca-bundle证书链,也就是受信任的根证书层层签下来的这个依赖关系~手机浏览器也能愉快玩耍了~
【你的https安全性如何?】
举个百度的栗子(也不知道ip对不对,不是a.shifen.com那个~)
https://www.ssllabs.com/ssltest/analyze.html?d=baidu.com&s=103.235.46.39
我们网站就类似这样。。。神马贵宾犬漏洞啊心脏流血漏洞啊全都露出来了~读完一大堆英文警告,说什么会被中间人攻击利用之类之类的,最后其实就一句话。。。要升级openssl版本,要提高TSL版本。。。
可以看看这篇文章 http://www.oschina.net/news/56159/ssl-v3-poodle
【要不要用SNI?】
买CDN服务的时候云服务商问要不要非SNI支持啊?SNI是什么呢?Server Name Indication是TSL协议的扩展,用于支持一个IP绑定多个证书。所以非SNI,就是IE7等旧版本浏览器的兼容问题。。。请用现代浏览器。。。
【客户端报错peer not authenticated】
浏览器、手机和一般客户端访问似乎是没问题的,然而天杀的某外部系统接入调用就出问题了。。。网上都说是没装证书,然而我们是权威证书啊怎么会~
然后我写了个简单的httpclient调用,在服务器端启动调用的返回是正常的,在IDE中启动调用就报SSL这个错误。
几番排查确认,在jdk1.7中运行正常,在jdk1.6中报错,这里用的httpclient是4.1。
然后两个怀疑,一个是httpclient或jdk中是否有什么bug,另一个是旧版jdk是否用了太旧的SSL协议而服务端不允许。
这个问题还有待验证和有待解决。欢迎大牛提建议。
至此,近似全站https就跑起来了~好多概念和操作细节就不一一展开了。
最后奉上阮大神对SSL/TSL的原理分析,篇幅不长,但是精要地解释了https握手和通信的过程。
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
https填坑之旅的更多相关文章
- React Native填坑之旅--布局篇
代码在这里: https://github.com/future-challenger/petshop/tree/master/client/petshop/src/controller 回头看看RN ...
- stm32填坑之旅 - stm32f103c8t6点亮板载贴片蓝色LED
转载请注明:https://www.cnblogs.com/rockyf/p/11691622.html 开篇 开篇一定要精彩,不然路人不理睬!下述是笔者作为arm小白的填坑之旅 没错,这个之前一直从 ...
- bootstrap-table填坑之旅<一>认识bootstrap-table
应公司需求,改版公司ERP的数据显示样式.由于前期开发的样式是bootstrap,所以选bootstrap-table理所当然(也是因为看了bootstrap-table官网的example功能强大, ...
- React Native填坑之旅--与Native通信之iOS篇
终于开始新一篇的填坑之旅了.RN厉害的一个地方就是RN可以和Native组件通信.这个Native组件包括native的库和自定义视图,我们今天主要设计的内容是native库方面的只是.自定义视图的使 ...
- React Native填坑之旅--Flow篇(番外)
flow不是React Native必会的技能,但是作为正式的产品开发优势很有必要掌握的技能之一.所以,算是RN填坑之旅系列的番外篇. Flow是一个静态的检查类型检查工具,设计之初的目的就是为了可以 ...
- 使用vue开发微信公众号下SPA站点的填坑之旅
原文发表于本人博客,点击进入使用vue开发微信公众号下SPA站点的填坑之旅 本文为我创业过程中,开发项目的填坑之旅.作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱^ ...
- React Native填坑之旅--动画
动画是提高用户体验不可缺少的一个元素.恰如其分的动画可以让用户更明确的感知当前的操作是什么. 无疑在使用React Native开发应用的时候也需要动画.这就需要知道RN都给我们提供了那些动画,和每个 ...
- React Native填坑之旅 -- 使用iOS原生视图(高德地图)
在开发React Native的App的时候,你会遇到很多情况是原生的视图组件已经开发好了的.有的是系统的SDK提供的,有的是第三方试图组件,总之你的APP可以直接使用的原生视图是很多的.React ...
- [Xamarin]我的Xamarin填坑之旅(二)
上一篇交代了我Xamarin填坑的背景,大概聊了聊第一步环境配置,第二步创建项目和开发框架选择.如果有一个可用的梯子,这部分基本不会出错. 接下来就具体聊一聊写代码的过程中遇到的一些事儿. 第三步是码 ...
随机推荐
- emacs窗口半透明
转自 http://blog.csdn.net/dsjlzh/article/details/7804733 ;; transform window;; Anchor: March Liu (刘鑫) ...
- 关于80286——《x86汇编语言:从实模式到保护模式》读书笔记15
一.80286的工作模式 80286首次提出了实模式和保护模式的概念. 实模式:和8086的工作方式相同: 保护模式:提供了存储器管理机制和保护机制,支持多任务. 二.80286的寄存器 (一)通用寄 ...
- 入门系列之在Ubuntu上使用MySQL设置远程数据库优化站点性能
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由苏子晨 发表于云+社区专栏 介绍 随着您的应用程序或网站的增长,您可能已经超出了当前的服务器设置.如果您在同一台计算机上托管Web服务 ...
- h5页面ios,双击向上滑动,拖拽到底部还能继续拖拽(露出黑色背景)
h5页面ios,双击向上滑动,拖拽到底部还能继续拖拽 标签: 手机 2016-02-02 18:09 696人阅读 评论(0) 收藏 举报 在ios下,双击屏幕某些地方,滚动条会自动向上走一段. ...
- KVC、KVO实现过程
1.KVC的实现过程 以 [object setValue:@"134567" forKey:@"uid"];为例子,来探究KVC的实现过程 第一步:搜索1.首 ...
- 【response-下载文件步骤】
Java中都通用文件下载(ContentType.文件头.response.out四步骤) 1.设置文件ContentType类型 2.设置文件头 3.通过response获取ServletOutpu ...
- 原创:微信小程序亲测体验,公众号入口曝光!
扫描即可体验知乐微信小程序,并且看到入口 你可以在这里看到相应的小程序:微信小程序商店 发现内有历史列表入口 真实小程序 搜索 操作栏 放置到桌面示意图必须搜索全称,才可以搜索到小程序 推荐给朋友,可 ...
- 对象和类型(数组、ref、out)
class Program { //数组是引用类型 //如果把数组或类等其他引用类型传递给方法,对应的方法就会使用该引用类型改编数组中值, //而新值会反射到原始数组上 static void Som ...
- 【3】.net MVC 使用IPrincipal进行Form登录即权限验证
1.在MVC项目中添加用户类,可以根据实际项目需求添加必要属性 public class UserData { /// <summary> /// ID /// </summary& ...
- [android] 实现返回键操作思路
记录用户点击的操作历史,使用栈数据结构,频繁的操作栈顶(添加,获取,删除),使用LinkedList 捕获用户的返回键操作,响应返回键,返回上一个界面 MainActivity.java /** * ...