路由器上的网站从 Http 到 Https
http: Hypertext Transfer Protocol
http 协议解决了客户端和服务器端的通信问题, 位于七层网络协议模型中的应用层, 是一个无状态的明文传输协议. 默认使用80端口, 但是可以使用其他端口.
由于使用明文传输, 所以中间人可以截获消息包, 并且修改, 然后还可以假装源, 重新发出去.
https: Hypertext Transfer Protocol Secure
https 是 http 在它的下一层使用 SSL 或 TLS 来加密, 保证传输的安全性. SSL 又分为 SSL record 协议和SSL 握手协议.
由于家里的 IP 地址的80端口被联通封了, 但是443端口是开放的, 所以使用 https 协议能避免端口非80的问题, 比如使用 https://home.tianxiaohui.com 比 http://home.tianxiaohui.com:90/ 要好看一点.
既然使用 https, 那就需要证书, 证书可以自己签发, 就比如 12306现在那种, 不过每个浏览器都会弹出一个警告窗口, 告诉用户这个证书不受信任. 另外一种就是让 CA 签发一个证书, 现在能签发证书的CA 还是比较多的.
1) 对于 Windows 系列的 OS (操作系统某些时候也是需要证书的) 及 IE 浏览器 , 可以签发证书的 CA 列表: http://social.technet.microsoft.com/wiki/contents/articles/14215.windows-and-windows-phone-8-ssl-root-certificate-program-member-cas.aspx
2) 对于Mozilla Firefox 系列, 可以签发证书的 CA: http://www.mozilla.org/en-US/about/governance/policies/security-group/certs/included/
3) Apple 的 OS 及 safari: http://www.apple.com/certificateauthority/ca_program.html
4) Chrome : http://www.chromium.org/Home/chromium-security/root-ca-policy
大概浏览一下, 发现中国的 CA 只有这2家公司: http://www.cnnic.cn/ & http://www.sheca.com/ 但是发现后者签发的某些证书在ff 还是显示警告.
这些 CA 中有一家 CA 提供的 certificate 是免费的: https://www.startssl.com/ 作为个人可以申请 class1的 certificate, 是免费的.
certificate 分为 class1, class2, class3, 和 Extended Validation 这4种. 区别看这里: http://weekend.blog.163.com/blog/static/74689582012030840165/
EV 证书能在浏览器显示一个绿色的区域, 里面显示认证的公司名字之类的信息, 让用户更加信任, 当然得到的成本也比较高.
nginx 安装证书
安装比较简单, 把获取的证书的 cert 和 key, copy 到服务器的某个目录, 然后修改 nginx 配置文件, 使用443端口.
使用中的问题: 一旦使用 https, 那么原来使用百度 CDN 的 js 库, bootstrap 的库, 就不能用了, 因为 https 的文档中不能使用http 的请求, 包括那些 js, css, image, fonts文件等.