存档

‘其他’ 分类的存档

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

阅读全文…

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

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, 其他 标签: , ,

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

2017年3月18日 没有评论

Guetzli

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

分类: 其他 标签:

免费好用的SSL域名签名,Let’s Encrypt使用攻略

2016年12月20日 没有评论

Let’s Encrypt是由 ISRG(Internet Security Research Group,互联网安全研究小组)发起,由Mozilla、Cisco、Akamai、Electronic Frontier Foundation 和 Chrome 等众多公司和机构支持的免费、自动化、开放的证书签发服务。

Let’s Encrypt 与 IdenTrust 的 DST Root CA 做了交叉认证,兼容性还是非常不错的,目前能做到主流系统包括XP系统也能得到很好的支撑,同时安全性上面Let’s Encrypt支持ECC 证书(目测采用的是ECDHE 密钥交换、RSA 签名方式)

Let’s Encrypt目前完全免费,支持3个月证书有效期,到期可自动续签,关于有效期这个应该是一个就安全性考量的策略,好在自动化做的非常不错,再加上各种自动化的申请、过期续签方案,已经做到很方便了。

Let’s Encrypt 的证书签发过程使用的是 ACME (Automated Certificate Management Environment)协议,目前官方和第三方工具都是基于此协议,官方推荐工具列表在这里

这里推荐 acme.sh 实测系统兼容性非常好,对其他库的依赖和版本依赖相对较小,CentOS 5.8系统 python 2.4.3 完美实现,这里简单讲一下acme.sh的安装和使用吧,官方有中文教程 在这里 阅读全文…

恢复Chrome欢迎页图标和功能入口

2013年11月28日 没有评论

Chrome确实是一个非常值得推荐的浏览器,简洁、快速、方便,而且再也不用担心3Q大战2选1地难堪了

最近遇到一个挺郁闷的事情,Chrome一次更新后,启动页面发现网页快捷缩略图变小了,看着别扭,而且底部“来自其他设备的同步“和”最近关闭的标签页”这两上常用功能也不知道哪去了,反正就一个字,很不爽。一度还是为是版本问题,还特意去重新安装了一下,只是在未登陆状态还原了状态,但是登陆后还是出现这样的情况.后来发现原来是Chrome的一个实验功能导致的问题,最近Google推出一个在启动页面与默认搜索进行整合的功能,实际发现其实功能并不好用,天朝环境下Google搜索经常中断,况且本人现在改用www.so.com了,所以果断停用实验功能,恢复后那叫一个精神气爽啊

恢复步聚如下

地址栏打开 chrome://flags/ 搜索找到“启用 Instant Extended API Mac, Windows, Chrome OS”,下拉菜单选择“已停用”重启浏览器就OK了

阅读全文…

分类: 其他 标签:

武汉智能公交非官方Web版

2013年9月4日 没有评论

不知道算不算全国先进,反正武汉智能公交做的确实算是件实事,现在武汉已经有很多公交站点都有显示屏滚动显示公交到站位置,等车的时候再也不用望眼欲的感觉。配套的还有手机应用,等车的时候手机查一下就可以看到还有几站车就到了,确实方便.

只可惜,智能公交的官方APP支持的手机操作系统版本有限,我1.6的Android是没法装了,刚好今天上班路人和同意谈起这个,一时兴起中午休息的时候仔细研究了一下,原来官方是有WEB版的,一试,也确实不怎么滴,只支持PC,反正我的手机浏览器是没办法打开正常使用。动了一点小脑筋,自己做了一个Web版的,有兴趣的童鞋可以试试,虽然简陋了一点,实用就行,至少有浏览器的手机就可以用

接口是自己做的代理,因为跨域问题,用我的博客做了个接口代理,JSONP形式接口。目前实现了公交线路位置查询,改天再完善一下.有需要的童鞋可以直接用.

武汉智能公交web版(非官方版)/ibus/

源码:https://github.com/aboutstudy/intelligent-bus-wuhan

分类: 其他 标签:

编程风格之花括号(大括号)

2013年8月21日 没有评论

今天一同事提出编程风格统一问题,刚好提到花括号(大括号)是否应该另起换行的问题引起了异义,一起以来我都采取的是直接另起一行的风格,可能跟接触的语言和工具有关吧。接触的比较多的都是Linux类开源方案,入门从C开始,然后一直是用的PHP做为主要开发语言,再就是JavaScript了,其他的用的比较少的就是Object-C和Python了.

目前流行的应该主要是以下两种风格:

风格一:起首的大括号另起一行

block
{
…….
}

风格二:起首的大括号跟在关键字后面

block{
… …
}

我一直采用的是风格一,起因是最早接触语言风格的是Linux相关的资料,提的比较多的就是GNU语言风格,信奉的理由也很简单,做为开源方向的童鞋来讲,Linux内核开发遵守的规范“你值得拥有” 🙂 ,应该C和C++的童鞋一般都采用这种风格的比较多,当然PHP也有很多:)

风格二传说是Java语言开发规范用的比较多的,K&R style?who care? 阅读全文…

分类: 其他 标签: , ,

脚本转换scel格式词库成txt格式

2013年8月8日 2 条评论

最近一个小项目搜索功能采用了Sphinx作为搜索引擎,结合mmseg中文分词效果不错,有兴趣的朋友可以试一下.另外国内已经有专门针对中文分词进行优化整合的项目coreseek,基于Sphinx和mmseg,就是版本稍微低了点,免费版基于Sphinx 0.9.9 release,对于新特性要求不高的同学可以试试

Sphinx搜索结果匹配效果与分词有比较大的关系,理论上词库越大匹配精度越高,可惜网上能找到的mmseg格式词库真心不多,自己一个个收集整理也不大现实.coreseek自带的中文词库大概有10万条的样子,试了一下只能说差强人意,很多专业词汇还有一些网络新名词基本上没有收录,也难怪估计很久没有更新了.

还好让我终找到了搜狗输入法的搜狗细胞词库,词库是按专业分门另类进行整理的,而且还支持用户上传自定义词库.可惜都是scel格式的,而mmseg提供的词库生成工具只支持txt格式的,不能直接使用.

万能的github竟然让我找到了scel转换为txt格式的工具,果断fork下来,稍做修改一个完整的思路出来了:搜狗细胞词库>>txt>>mmseg词库

fork下来的脚本修改后支持批量转换为单个词库,Python写的简单脚本

脚本地址:https://github.com/aboutstudy/scel2mmseg

附赠个本人整理的词库,收录近100万词汇:收录100中文词条的mmseg格式词库