HTTPS 目前正在逐步得到广泛应用,本篇文章通过不断剖析HTTPS的原理,基于对此的深刻理解不断的分析其性能瓶颈。立足在安全的基础上达到与HTTP同样的性能。
HTTPS
HTTPS 可以认为是 HTTP + TLS/SSL,所以我们只需要了解 TLS/SSL 原理即可。在进入原理之前,我们需要了解两个基础概念:数字证书、证书授权中心
继续阅读 »
今天在segmentfault上和某人探讨了一下这个https的握手流程,其实我一开始也不是很清楚,也没有好好去思考过,通过回答这个问题,对https有了更深的认识。
首先我搜索到的流程正规说法是:
more
1. 用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。
继续阅读 »
参考文章
iOS学习笔记——HTTPS原理篇
HTTPS工作原理和TCP握手机制
图解SSL/TLS协议
How to Use SSL/TLS with Node.js
在上一篇博文《Node核心模块之crypto》中,提到了加密(摘要,加密解密,签名等)的四种常见类型:
Hash(哈希)
HMAC(基于哈希的消息认证码)
加密,解密
签名,验证
HTTPS的整个过程和以上几种方法密切相关。
CA证书
CA 即 Certificate Authority (数字证书认证机构),CA证书的签发以及验证包含以下三方:
CA
Server
Client
过程包括:
Server生成一对公钥和私钥
Server将公钥以及域名等信
继续阅读 »
网站买了证书,绿条,多霸气!
那么自然得拦截http的访问方式了。
拦截http,301到https
各种Google,最后在Nginx官网找到例子,配置很简单,如下:
server {
listen *:80;
return 301 https://www.domain.com$request_uri;
}
其实就是拦截所有80端口的请求,然后重定向到https的对应uri
完整配置如下:
server {
listen 443 ssl;
ssl_certificate /home/ubuntu/www.domain.
继续阅读 »
你永远不知道用户看到的是哪个狗日的运行商贴的广告
我之前写过几篇关于https的文章。除了这个博客都走的https。
博客一直是我的一块心病,万一哪天一大牛来看我博客结果被操蛋的ISP给赶跑了我找谁哭?
今天偶然间找到了一篇文章,才发现原来github pages自带https的!
继续阅读 »
这个五一折腾了下https,看了加密的建立过程和原理,然后动手实践,把博客从不支持https的阿里云虚机上搬到了新买的腾讯云的主机上,配好了https,这里记录一下。
more
加密连接建立过程与原理
这个部分不想自己写了,参见 sf 上的这篇文章就很容易理解。
继续阅读 »
随着互联网的普及,不管是PC端的web,还是移动端的app,甚至智能家居等,绝大部分的通信都是依靠http协议传输数据,但http协议只负责传递信息,并不能保证信息的安全性和可靠性。
more
信息安全
简单来说,信息安全就是为了保证传递的信息只能被正确的人接收和识别,并且接收方能够验证信息是否被篡改,最终能够正确识别收到的信息。
继续阅读 »
在 HTTPS 上运行 FLASK 应用程序
介绍
在开发FLASK 应用过程中,通常会运行开发 web 服务器,它提供了一个基本的、但功能齐全的 WSGI HTTP 服务器。但是当部署应用程序到生产环境中,需要考虑的事情之一是,是否应该要求客户端使用加密连接以增加安全性。
那么应该如何在 HTTPS 上运行 FLASK 应用程序呢?在这篇文章中,我将介绍几个为 Flask 应用程序添加加密功能的选项,从一个只需要5秒钟就可以实现的非常简单的解决方案,到一个健壮的A+ 评级的解决方案。
继续阅读 »
把个人博客启用了https。
more
我们假设如下:
域名,也称为 Common Name,因为特殊的证书不一定是域名:example.com
组织或公司名字(Organization):Example, Inc.
部门(Department):可以不填写,这里我们写 Web Security
城市(City):Beijing
省份(State / Province):Beijing
国家(Country):CN
加密强度:2048 位,如果你的机器性能强劲,也可以选择 4096 位
按照以上信息,使用 OpenSSL 生成 key 和 csr 的命令如下
python
openssl req -new -new
继续阅读 »
我是一个穷逼,也相信有很多人和我一样,不会舍得花钱去买服务器,而是选择比较稳定的 GitHub Pages 来搭建自己的博客,作为学生我还可以在 GitHub 上申请得到免费的域名 1 年。因此我想把自己的域名指向 GitHub Pages,遗憾的是,GitHub Pages 目前已经不支持 https 访问,因此只能通过其他途径,无意之中通过我朋友的博客发现了解决办法,即通过 Netlify 作为第三方支持。
继续阅读 »