1.概念

数字证书

HTTPS请求时,Server发给浏览器的认证数据,用私钥签名,并且告诉浏览器公钥,利用公钥解密签名,确认Server身份。

证书还会指明相应的CA,CA能确认证书是否真的是CA颁发的。

可以用PEM、等编码

SSL/TLS

SSL是上世纪由Netscape设计的web安全协议,并获得了广泛应用,SSLv2.0, v3.0,目前主要是v3

TLS是ITEF将SSL协议标准化了,TLSv1.0,v1.1,v1.2。

其实TLSv1.0跟SSLv3.0差异很小,几乎一样。

openSSL: 一个开源的实现了SSL/TLS协议的库,包括3部分内容。

a. SSL_xxx带头的API,支持SSL/TLS协议

其中SSL* 这个结构最重要,调用openSSL API都会拿这个handle

最后类似socket一样提供 SSL_read(SSL* buf,bufsize), SSL_write(SSL* buf,bufsize)

b. X509_xxx, AES_xxx, RSA_xxx MD5_xxx等API, 支持业界通用的证书认证、加解密等功能。

c. 提供一些二进制工具,用来生成证书、签名、加解密等功能。

2.数字证书认证流程

2.1跟服务器TCP连接

2.2服务器传送证书给浏览器

a. signedCertificate

版本、序列号(CA据次确定证书)、签名的算法

颁发者(CA)的可识别名称: countryName, stateName, localityName,

OrganizationUnit, OrganizationName, commonName(有效的 DNS 名称)

有效期、

证书名称: OrganizationUnit, OrganizationName, commonName

证书的算法及公钥

扩展

b. algorithmId: 证书的签名算法

c. encryptedData: 证书签名值,CA对证书签名后的值,结合CA的私钥,使用algorithmID对应的算法生成。

2.3浏览器如何验证

浏览器根据证书的CA的公钥,对证书签名部分解密,解密成功则证书是CA颁发的。

3.使用代理时,如何处理证书认证

代理可以有很多种,http代理,socket代理等。

socket的代理,可以代理就不需要处理证书了,仅仅作为一个bridge。

4.补充

openSSH: 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制,用来加密远程控件和文件传输过程中的数据。

FreeBSD: 是一种自由的类Unix操作系统

最新文章

  1. phpstorm的安装、破解、和汉化
  2. 你所不了解的setTimeout
  3. bzoj4547 小奇的集合
  4. SQL Server 表所在的文件组
  5. 谈Objective-C Block的实现
  6. html中的div、td 、p 等容器内强制换行和不换行的实现
  7. [娱乐]GameMaker绘制参数方程的图像
  8. Linux下安装MATLAB的一些注意事项
  9. jquery完善的处理机制
  10. Linux 内核使用的 GNU C 扩展
  11. Spark保存到HDFS或本地文件相关问题
  12. HttpContext的解释意义
  13. Git在下搭建下环境的工具
  14. VS代码生成工具ReSharper使用手册:配置快捷键(转)
  15. tensorflow机器学习模型的跨平台上线
  16. display:inline-block,block,inline的区别与用法
  17. cf1047C-Enlarge GCD-(欧拉筛+map+gcd+唯一分解定理)
  18. Perl子程序引用和匿名子程序
  19. 玩转EhCache之最简单的缓存框架
  20. 【LeetCode】7. 整数反转python3

热门文章

  1. lr中常用函数以str开头函数
  2. 免考final linux提权与渗透入门——Exploit-Exercise Nebula学习与实践
  3. geoserver中WMS服务详细说明
  4. 北京Uber优步司机奖励政策(1月11日)
  5. MySQL高级-索引优化
  6. C++ 基础面试题-2
  7. tpo-10 C1 How to get photographs exhibited
  8. 【text】 文本组件说明
  9. [Clr via C#读书笔记]Cp11事件
  10. LCD1602指令集解读