SSL中间证书的坑

2017年11月17日 没有评论

启用SSL已经有段时间了,使用的是 Let’s Encrypt 免费证书,除了需要每季度更新一次维护外,一切正常使用,包括WEB和iOS,因为历史原因Android还没有完全切到HTTPS协议,也正因为漏掉Android这一块无意间避过了中间证书的问题,一直到微信小程序开发过程中发现接口访问报 request fail 错误,由此填坑的过程揭开SSL中间证书的面纱

先来认识一下中间证书

中间证书,其实也叫中间CA(中间证书颁发机构,Intermediate certificate authority, Intermedia CA),对应的是根证书颁发机构(Root certificate authority ,Root CA)。为了验证证书是否可信,必须确保证书的颁发机构在设备的可信 CA 中。SSL的验证机制是由一级一级追溯验证,当前CA不可信则向上层CA验证,直到发现可信或没有可信CA为止,注意有时候Intermedia CA也有可能在设备的可信CA中,这样不用一直追溯到Root CA,即可认证完成。

根证书,必然是一个自签名的证书,“使用者”和“颁发者”都是相同的,所以不会进一步向下检查,如果根 CA 不是可信 CA ,则将不允许建立可信连接,并提示错误。

一般Root CA是要求离线保存的,如果要签发证书也是通过人工方式签发,这样能最大程序保证Root CA的安全,而Intermedia CA则相对宽松,允许在线签发证书的,这样方便高效,安全性灵活,即便通过Root CA签发的Intermedia CA发生意外泄露,也可以通过Root CA进行撤销

中间证书的运行机制
阅读全文…

分类: 其他, 移动端 标签: ,

再见 Resilio Sync

2017年9月14日 没有评论

bye-resilio

运行在后台,每天不动声色地完成工作,完美的解决备份、同步问题,这个就是 Resilio Sync,文件同步软件,从第一次接触到现在就一直默默地帮我们完成文件同步。然而最近因为『众所周知的原因』我们要跟它说再见了 阅读全文…

分类: 其他 标签:

使用HSTS协议强制浏览器使用HTTPS协议访问网站

2017年7月13日 没有评论

大家都知道网站启用SSL数字证书后使用HTTPS协议可以保证服务器与浏览器端数据加密,但与此同时不可避免另外一个问题,总存在部分用户会直接输入域名的方式访问网站,默认浏览器是使用HTTP协议访问网站的,此时即便网站启用了SSL数字证书,此时用户与服务器端的数据交互仍然使用的是明文传输方式,用户数据得不到保护,因为SSL数字证书没有生效。

可能你会说那不如直接关闭80端口吧(好吧,如果你是API等后台服务大可不必考虑前台用户访问的问题)或HTTP访问的时候直接跳转到HTTPS协议吧(直接跳转其实也存在『中间人』攻击风险),其实这个问题有更好的方案,这就是下面要介绍的

HSTS(HTTP Strict Transport Security),它是一个Web安全策略机制(web security policy mechanism),它通过服务器为HTTP响应增加如下一个Header 来让浏览器强制使用HTTPS与网站进行通信,以减少会话劫持风险:

Strict-Transport-Security:max-age=63072000; includeSubdomains; preload

只要在服务器返回给浏览器的响应头中,增加 Strict-Transport-Security这个HTTP Header 浏览器都将直接强制性的发起HTTPS请求,现在访问机制如下

HSTS_1

阅读全文…

分类: 其他, 架构 标签: , ,

PHP如何控制终端输出文字颜色

2017年6月10日 没有评论

经常碰到一些语言在终端下执行的时候为什么可以输出一些彩色的文字样式,今天刚好执行 composer 工具的帮助时候发现竟然PHP也可以实现这样的效果(composer是一个Phar包程序,本质上就是一个PHP程序包)

经过研究发现其实原理挺简单,看看下面这段执行的PHP代码效果

$php -r “echo \”用\\033[0;32mPHP\\033[0m\\033[41m输出一段\\033[0;31m彩\\033[0;33m色\\033[0;34m文\\033[0;35m字 \\033[0m \n\”;”

PHP在终端输出彩色文字

其实背后原理很简单,分析上面的代码可以看到一串由 \033[ 开始的字符,其实这一段字符是用于引导非常规字符序列,在这里的作用就是引导设置输出属性,后边的[32m就是将前景色设置为绿色,字母m表示设置的属性类别,数字代表属性值。同类的多种设置项可以组合在一起,中间用分号(;)隔开。 阅读全文…

分类: PHP 标签:

macOS下安装Python的OpenCV环境

2017年6月1日 没有评论

计算机图片识别

因为macOS系统(包括Mac OS X系统)自带python安装,但因为操作系统本身依赖且版本较低,这里采用Homebrew安装隔离的python环境,Homebrew的特性这里不作延展,后续专门写一篇介绍.

安装 OpenCV2

brew tap homebrew/science

brew install opencv

安装结束后 opencv会被安装到 /usr/local/Cellar/opencv/2.4.13.2/ 目录

python调用opencv是通过 /usr/local/Cellar/opencv/2.4.10/lib/python2.7/site-packages/ 目录下面的

cv.py

cv2.so

阅读全文…

分类: OS X, Python, 其他 标签: , ,

Python虚拟化环境工具:Virtualenv

2017年5月21日 没有评论

Virtualenv是什么?

Virtualenv是Python下面创建隔离环境的虚拟化工具,它可以将一个项目的运营运行环境封装在一个完全『隔离』的环境里,和其他项目互不影响。

Virtualenv解决什么问题?

不同项目可能依赖同一个包的不同版本,一般情况下我们会将/usr/lib/python2.7/site-packages 路径,项目执行过程中将会产生冲突,这个时候我们需要一个各项目间完全隔离的环境,这就是Virtualenv要解决的问题. 阅读全文…

分类: Python 标签:

《万维钢 · 精英日课》读书笔记:忘记是为了更好的记住

2017年5月17日 没有评论

记忆力

开篇作者介绍了Ballard效应,在一组背诗记忆测试实验中,两天后在期间没有任何复习的情况下测试结果竟然会比第一次背诗后马上测试的成绩要好。

作者引用加州大学洛杉矶分校一对教授Robert Bjork和Elizabeth Bjork提出的记忆力理论模型解释了为什么Ballard效应在面对无规律字母组合的记忆实验失效,而面对像一首诗这样词句彼此之间有联系的事物记忆实验却有效的背后原理。

Bjork 家的理论把记忆分为两个强度:

存储强度(storage strength)

提取强度(retrieval strength)

阅读全文…

分类: 工作之外 标签:

人生苦短,我用Workflow

2017年3月26日 1 条评论

请原谅我套用标题,没办法实在有点相见恨晚的感觉,所以抱着很急切的心情『安利』给大家

Workflow是用来连接各个APP之间的自动化工具,让原来需要在APP间跳来跳去的常见动作程序化,可以说以前只有极客或程序员才能用的功能,现在『小白』用户也可以通过简单的拖拽就可以实现,因为Workflow内置如获取相册照片、打开URL链接、发短信、打电话、获取GPS定位等150多种动作,而且还内嵌了如图片处理、Gif制作、视频转换等功能,另外如果你懂点编程知识变量和条件等更多高级功能一定能让你大显身手。总之,只要能巧妙组合,搭配合理你就可以繁琐的操作流程中解脱出来,如行云流水般一气呵成。

说个Workflow的简单使用场景吧,这样也许你更能明白 阅读全文…

分类: 工作之外 标签:

揭秘能让图片体积减小35%的Google编码器Guetzli

2017年3月18日 没有评论

Guetzli

这段时间头条被一条关于Google开源JPEG编码器『Guetzli』的信息刷屏,『质量不变,体积减小35%…』,看着都让人激动,如果属实这应该是图片压缩技术上的一次重大突破,带着好奇心我仔细查阅了相关文档并做了一次全面测试,得到的结论是:基本属实,但也不用『辣么鸡冻』,为什么我下面会告诉你 阅读全文…

分类: 其他 标签:

利用计算机视觉和图像处理技术构建答题卡识别系统

2017年1月1日 没有评论

早些年总公司从阅卷系统起家,经过这些年的发展阅卷系统技术逐渐成熟市场也都做烂了,近些年阅卷系统逐步的变成教育信息化公司争夺各地教育机构与学校地盘的工具,更有像科大讯飞这样财大气粗的公司直接送成套软硬件到校,由此可见教育信息化这个市场的白热化,越来越难做了。早几年教育信息化这个市场还算是个半封闭的市场,大大小小厂商盘踞一方,谁也搞不死谁,但近年随着市场越来越热闹,『钱途』被不断地发掘,不断的出现大鱼吃小鱼,像互联网行业一样赢家通吃越来越普遍。所以就像很多传统行业一样,越来越多的公司在谋求转行,追逐更大的市场。

闲话扯的有点远,写这个主题主要是因为项目需要做一个成绩分析系统,区别于传统阅卷系统的,主要使用场景是服务于线下培训机构学生报班前的整体科目能力测评和课程练习测验的成绩分析与学习情况跟踪,系统主要由一个答题卡识别模块+成绩分析模块,今天先聊聊答题卡识别模块是如何构建的吧。 阅读全文…