Nginx上部署HTTPS依赖OpenSSL库和包含文件,即须先安装好libssl-dev(或者OpenSSL),且ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib/,然后在编译配置Nginx时要指定--with-http_ssl_module和--with-http_v2_module。另外,若要在本地运行openssl命令,要安装OpenSSL包,本人用的OpenSSL-1.0.2g。注:本文采用Ubuntu 16.04上的操作实例。
下图展示了数字证书(HTTPS中使用的由CA签名的公钥证书)的签名和验证原理:
TLS保障信息传输安全:对于每一次新的对话(连接握手阶段。这里讲的对话不是HTTP中涉及的应用层对话,而是TLS对话),客户端和服务端都会协商一个对话密钥和对称加密算法(了解更多可参考“加密套件”“四次握手”相关内容)用来加减密信息,这样就避免非对称加减密耗时过长,运算速度更快;而Public/Private密钥对只用于"pre-master key"的加解密。特别地,在连接断开后,旧对话的恢复(两种实现方法:session ID和session ticket)不属于建立新的对话,无需协商一个新的对话密钥和对称加密算法。
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26
学习是年轻人改变自己的最好方式