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填坑之旅的更多相关文章

  1. React Native填坑之旅--布局篇

    代码在这里: https://github.com/future-challenger/petshop/tree/master/client/petshop/src/controller 回头看看RN ...

  2. stm32填坑之旅 - stm32f103c8t6点亮板载贴片蓝色LED

    转载请注明:https://www.cnblogs.com/rockyf/p/11691622.html 开篇 开篇一定要精彩,不然路人不理睬!下述是笔者作为arm小白的填坑之旅 没错,这个之前一直从 ...

  3. bootstrap-table填坑之旅<一>认识bootstrap-table

    应公司需求,改版公司ERP的数据显示样式.由于前期开发的样式是bootstrap,所以选bootstrap-table理所当然(也是因为看了bootstrap-table官网的example功能强大, ...

  4. React Native填坑之旅--与Native通信之iOS篇

    终于开始新一篇的填坑之旅了.RN厉害的一个地方就是RN可以和Native组件通信.这个Native组件包括native的库和自定义视图,我们今天主要设计的内容是native库方面的只是.自定义视图的使 ...

  5. React Native填坑之旅--Flow篇(番外)

    flow不是React Native必会的技能,但是作为正式的产品开发优势很有必要掌握的技能之一.所以,算是RN填坑之旅系列的番外篇. Flow是一个静态的检查类型检查工具,设计之初的目的就是为了可以 ...

  6. 使用vue开发微信公众号下SPA站点的填坑之旅

    原文发表于本人博客,点击进入使用vue开发微信公众号下SPA站点的填坑之旅 本文为我创业过程中,开发项目的填坑之旅.作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱^ ...

  7. React Native填坑之旅--动画

    动画是提高用户体验不可缺少的一个元素.恰如其分的动画可以让用户更明确的感知当前的操作是什么. 无疑在使用React Native开发应用的时候也需要动画.这就需要知道RN都给我们提供了那些动画,和每个 ...

  8. React Native填坑之旅 -- 使用iOS原生视图(高德地图)

    在开发React Native的App的时候,你会遇到很多情况是原生的视图组件已经开发好了的.有的是系统的SDK提供的,有的是第三方试图组件,总之你的APP可以直接使用的原生视图是很多的.React ...

  9. [Xamarin]我的Xamarin填坑之旅(二)

    上一篇交代了我Xamarin填坑的背景,大概聊了聊第一步环境配置,第二步创建项目和开发框架选择.如果有一个可用的梯子,这部分基本不会出错. 接下来就具体聊一聊写代码的过程中遇到的一些事儿. 第三步是码 ...

随机推荐

  1. Oracle系统表整理 --sql

    -- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是视图-- DBA_TABLES意为DBA拥有的或可以访问的所有的关系表.-- ALL_TABLES意为某一 ...

  2. 在W3C SCHOOL网站上发现一个关于Schema的错误

    原地址是http://www.w3school.com.cn/schema/schema_complex_empty.asp 下面这个例子是不正确的 xmlspy报错. 因为<xs:restri ...

  3. shell -- 获取绝对路径

    readlink -f <file> readlink -m <file> 会把file的相对路径转化为绝对路径 几个选项的区别: -f, --canonicalize can ...

  4. iconfont_3种引用方式

    IconFont 图标的3种引用方式   新版Iconfont-阿里巴巴矢量图标库支持三种引用方式: 1.unicode引用(原始) unicode是字体在网页端最原始的应用方式,特点是: 兼容性最好 ...

  5. OpenGL初识

    OpenGL 概念 OpenGL提供的是一系列接口, 它是指一个规范, OpenGL规范严格规定了每个函数该如何执行, 以及它们的输出值, 具体的实现是由各个显示设备厂商, 它作为本地系统库直接运行在 ...

  6. Python 读取图像文件的性能对比

    Python 读取图像文件的性能对比 使用 Python 读取一个保存在本地硬盘上的视频文件,视频文件的编码方式是使用的原始的 RGBA 格式写入的,即无压缩的原始视频文件.最开始直接使用 Pytho ...

  7. vs2013中$(TargetPath)与Link.OutputFile不同,导致调试debug找不到exe

    之前把VS2008项目升级为VS2013项目后,出现了VS2013调试debug找不到exe文件的现象,如:http://blog.sina.com.cn/s/blog_6c617ee301013xt ...

  8. 利用SqlDataAdapter进行分页

    利用SqlDataAdapter进行记录分页 说到分页,很多地方都会用到,不管是windows程序还是web程序,为什么要进行分页?很简单,如果BlueIdea BBS帖子列表不分页的话,几十万条记录 ...

  9. Spring事务不起作用原因

    首先声明: Checked异常继承java.lang.Exception类.Unchecked异常继承自java.lang.RuntimeException类. 而,Spring的事务实现采用基于AO ...

  10. 基于bootstrap的图片轮播功能

    插入js及css支持: <link rel="stylesheet" href="css/bootstrap.min.css"/> <scri ...