2017年8月

微软官方的 Windows + IE 虚拟机镜像

微软官方的虚拟机镜像,用于测试网站在 IE/Edge 下面的显示效果。对于国内用户,正好当作沙盒,专放 BAT 各家的垃圾软件,以及网银。

自带 90 天的激活,到期后再次激活即可,激活方法在虚拟机的桌面上。

https://dev.windows.com/en-us/microsoft-edge/tools/vms/windows/

支持 Windows, Mac, Linux

目前提供的系统 + IE 版本有:

IE6 on XP
IE7 on Vista
IE8 on XP
IE8 on Win7
IE9 on Win7
IE10 on Win7
IE10 on Win8
IE11 on Win81
IE11 on Win7
MSEdge on Win10

镜像格式有

VirtualBox
Vagrant
HyperV
VPC
VMware

- 阅读剩余部分 -

Nginx的SSL证书安全设置

使用最新版本的openssl

禁用 SSLv2 和 SSLv3
这两个协议都是不安全的, 我们应该在服务器上禁用这两个协议。添加一下代码到网站的配置文件, lnmp的网站配置文件位于 /usr/local/nginx/conf/vhost 目录

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

使用安全的Cipher Suite
将以下代码放在网站的配置文件里面

ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

以上设置不支持Winxp/IE6 ,如果你想网站同时Winxp/IE6的话可以使用使用以下的Cipher Suite

ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

额外的安全设置,请添加如下代码

ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
 

- 阅读剩余部分 -

This site works only in browsers with SNI support

上周启用了 https,昨天偶然使用 IE8 竟然打不开我的网站了,连链接都没有建立,刷新、清缓存、InPrivate 都不行,换 Chrome 也不行,还好 Chrone 有错误提示:
ERR_SSL_VERSION_OR_CIPHER_MISMATCH

唯有我常用的 Firefox 可以正常打开,忘了说,我的操作系统是 Windows XP。

我的主题对 IE 家族做了特殊照顾,向下兼容到 IE6,如果单单是 IE8 以下的浏览器打不开这还能接受,但是 Chrome 也打不开,这就不能接受了。Google 一下 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 这个错误,在 nginx 网站找到一个答案,说要启用 SNI。然而,这并不是造成以上问题的原因,真正的原因是 cloudflare 的免费CDN 对使用 TLS 协议封装加密的 https 做了限制,要求客户端浏览器必须支持 TLS 的 SNI 扩展,而 XP 系统上 IE、chrome 都不支持 SNI。

SNI 是什么

简单来说 SNI 是 TLS 的一个功能扩展,有了 SNI 就可以在单个 IP 上启用多个 SSL 证书,现实一点说就是可以在只有一个 IP 地址的 VPS 上建立两个或更多的 https 网站了。

- 阅读剩余部分 -

Nginx 配置上更安全的 SSL & ECC 证书 & Chacha20 & Certificate Transparency

文章修订记录

  • 2016.03.03: 补充了 Chacha20 和 Certificate Transparency 相关的配置
  • 2015.12.07: 关于 ECC 证书的补充
// Generate RSA key
openssl genrsa -out private.key 4096

// Generate ECC key
openssl ecparam -genkey -name secp384r1 -out private-ecc.key

// Generate CSR
openssl req -new -sha384 -key private-ecc.key -out www_pupboss_com.csr

关于 ECC 证书,好处就不多说了,256 位的证书加密强度比 2048 位的 RSA 都高,还避免了性能消耗 吗?。

谷歌一搜  ECC 证书 ,首页已经被沃通承包了,他不断夸大自己的数据,说 ECC 如何如何好,对移动设备友好,兼容 XP Android 2.1.x 等等等等,其实生产环境并没发现有什么优势,正常的 ECC 反而不兼容 Android 2.x,XP。

沃通颁发的 ECC 证书是经过特殊处理的(如果他的 ECC 证书真的兼容 XP Android 2.1.x),猜测是采用了传说中的双证书。

- 阅读剩余部分 -

服务端 SSL 配置

快要步入全民 SSL 时代了,有必要记录下 SSL 的相关配置了。

SSL cipher 依据你申请的证书来,譬如:WoSign 的免费证书是 AES128 加密的,则 Nginx 可以:


ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES128+EECDH:AES128+EDH";

而 SSL 的协议则推荐使用 TLSv1 TLSv1.1 TLSv1.2,Nginx 下如此:


ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Forward Secrecy 也加上,终端运行:


openssl dhparam -out dhparam.pem 4096

随后在 nginx 配置中加上:


ssl_dhparam /your/path/dhparam.pem;

解释下 Forward Secrecy,客户端服务端协商一个永不重用密钥,在会话结束时销毁它。

- 阅读剩余部分 -

巧用七牛CDN的镜像功能使百度分享支持HTTPS

唉,好懒呀,好久没更新博客了。

最近搞了个 HTTPS 证书,像以前一样给博客添加了个百度分享(http://share.baidu.com/)的组件,但发现百度分享不支持 HTTPS(百度分享图标出不来,console 会提示页面有不安全的脚本元素)。看了其它几家也都不支持,搜索了下发现有人建议把百度分享所需的 js 都保存到自己本地就行了。这也是个办法,分享功能大多是抓取这个页面的 title、摘要、图片等然后起调一个页面完成分享,这些都是本地 js 文件能完成的。

看了下从百度分享获取的代码,里面主要加载了这个:http://bdimg.share.baidu.com/static/api/js/share.js,访问了一下果然还是不支持 HTTPS。然后我就天真的把 share.js 上传到了七牛 CDN(七牛是支持 HTTPS的,在空间设置-域名配置里面设置下就行),然而百度分享的图标还是没出来。看了下控制台,卧槽,又加载了一堆 js,作为一个全栈工程师,我非常灵性的瞅了眼代码里面有一段:domain:{staticUrl:”http://bdimg.share.baidu.com/”},原来是模块化加载,把链接替换成七牛 CDN  的链接后有些请求 404 了,我又天真的以为把这几个 js 文件补全就行,但是补完几个,又有几个文件 404 了,我可没耐心一个个文件补齐呀。

作为一个灵性码农,我马上想到七牛不是有个镜像存储功能嘛,设置一发:

- 阅读剩余部分 -

利用七牛镜像功能使百度分享支持HTTPS

        百度分享不支持HTTPS早已饱受诟病了,但不知道为什么百度却视而不见,迟迟没有要改造它的意思。现在国内也没有什么支持HTTPS的好用的分享服务使用。这里分享一个曲线救国的方法,利用七牛的镜像功能来实现HTTPS网站使用百度分享功能。(七牛的镜像功能真是个好用的东西啊)

一、在七牛创建一个公开空间,然后在“基本设置”中设置镜像源:  http://bdimg.share.baidu.com/

二、在七牛“域名设置”里申请HTTPS网址。(友情提醒:这个HTTPS并不包含在免费的10G流量里,独立收费。)

三、下载share.js文件,下载地址: http://bdimg.share.baidu.com/static/api/js/share.js

        打开该文件,搜索 http://bdimg.share.baidu.com/ ,把这个地址替换为你在第二步里申请的七牛HTTPS网址。

        然后把该文件上传到七牛空间中,路径为 static/api/js/share.js

四、本地新建一个空文件,文件名为logger.js 。然后上传到七牛空间中。路径为 static/api/js/trans/logger.js

五、找到你主题里引用百度分享的地方,网址类似于 http://***/static/api/js/share.js?v=89860593.js?cdnversion=’+~(-new Date()/36e5)  把这个网址前半段替换为你第二步在七牛申请的HTTPS域名。

六、大功告成,刷新页面试试吧!

利用七牛镜像功能使百度分享支持HTTPS

- 阅读剩余部分 -

使用nginx作为css,js,image静态文件的服务器 概述

最近web项目将图片,css,js等一些静态文件都移出去用svn统一管理了。所以在开发web项目时需要自己导入静态文件,或者配置一个HTTP服务来访问svn下的静态资源。当然不会每次都自己拷贝静态文件到项目了,nginx是一个不错的选择。

一些命令

tasklist /fi "imagename eq nginx.exe"

显示nginx在系统中的进程

显示nginx进程

- 阅读剩余部分 -

meiyoutongji