SSL Certificates深入理解

2023-10-28 10:40
文章标签 深入 理解 ssl certificates

本文主要是介绍SSL Certificates深入理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://www.littlewhitedog.com/content-71.html

https://www.verisign.com/en_US/website-presence/website-optimization/ssl-certificates/index.xhtml

 什么是certificate(证书)?

一个certificate是一种担保你的网站完整性和权威性的方式。如果你搭建了一个ssl web网站,你总会希望你的用户能够信任这个网站。你在你的网站上安装一个certificate证书。有两种方式来获得一个证书:要么你自己创建,要么你向一个CA公司购买一个证书certificate(比如:verisign,Equifax,Thawte等等)

在这里,核心的概念是信任。作为一个用户,当访问一个站点时,你是否信任该网站关于安全的声明?证书的作用就好像是网站对你说:“你可以信任我,请相信我,我是一个诚实的人,没有任何一句谎言。"

这只是ssl网站的第一步,第二步是:你,或者更确切地说是你的浏览器,决定接受该网站关于安全的声明,并且开始信任这个网站。对于大多数ssl网站来说,这个信任过程是无缝的,用户无法感知这个过程。这时因为浏览器本身信任一些已知的签发证书...

证书是怎么工作的?

certificate可以为其他的证书用于"sign"签名,或者担保.这就是你的浏览器决定他是否信任你网站的证书的基础。我们来看一个网站https://www.fastmail.fm的证书情况。

从这个对话框,你可以看到certificate证书存在的目的:该证书用于验证网站的身份-以及是谁签发了该证书,签发给了谁(哪个网址),以及该证书的过期时间。在本文成文之际,该网站的证书是有效的,但是随着时间的推移,证书可能会过期哦!!

目前为止,一切顺理成章,但是你如何知道该证书确实是值得信赖的,而不是浏览器自己胡乱接受了该证书而未做有效的验证呢?如果你点击details tab,你可以看到该证书更多的信息:

你可以从上图中看到更多的信息:签发者-这里是Thawte,有效的时间,以及该证书的受益人-subject.

再点击certification path tab:

这里你可以看到certification authority hierarchy(证书层级)。换句话说,这个网站的certificate是根证书Thawte server CA的一个证书链。这个path只有两级,有一些证书链可能有三级甚至更多的级别。

IE已经信任了Thawte Servr CA,因此IE会信任任何使用该CA签发(signed)的证书。这里的逻辑是这样的:”我不认识你,但是我已经认识他,而他为你做了担保所以我信任你。"如果你想看看Thawte Server CA长什么样,你可以点击它,查看证书详细信息如下:

到这里,你可能会赶到疑惑,为什么根证书Thawte Server CA能被IE浏览器信任呢? Fastmail的certificate在被信任之前,必须使用一个已知信任的CA证书来签发(signed)。但是Thawte Server CA又是由谁来签发呢?答案是:不需要

IE内置了很多被IE信任的证书certificate,这些证书就被成为根证书,而Thawte Server CA就是这些证书之一。这些根证书你可以在你的PC上看到。通过IE的internet options中的security选项,你就可以看到:

从这个列表里面,你可以看到Thawter Server CA.如果你点击view button,则可以看到前面类似的信息。

在前面的例子中,证书仅仅用于认证Fastmail web server的身份。而证书的作用远不止此。他们也可以用于验证软件的完整性。当登录进入安全系统时,他们可以用于代替userid和password。或许证书最著名的用处是在e-mail应用中。用户可以使用证书来加密e-mail来保护随意的窥探。

用户也可以用证书来签发(sign)一封邮件,来说明这封邮件确实是从发件人来发出的,而不是被人冒充发件人的名义伪造的邮件。

证书可能会有哪些错误?

有时你的浏览器可能会抱怨他遇到了证书问题。有时你可能看到下面的错误:

证书有时可能会被签发机构(signing authority)被标记为revoked(作废)状态,而签发机构会维护一个列表,被称为-Certificate Revocation List(CRL),专门列出哪些证书被作废。你的浏览器知道如何通过这个CRL来检查你的网站的证书是否有被作废.

如果你看到上面这个警告信息,并不一定意味着你的网站的证书是有问题的,也不一定意味着对你的计算机有任何的危害,这条警告信息只是意味着你的浏览器无法通过CRL来double-check你的网站证书未被作废而已。但是这并不意味着这个警告消息不重要;相反地,除非你确信你信任该网站,否则你应该查看一下该网站的证书的细节。如果证书已经过期,或者用的太快,你可能看到下面的信息:

在点击yes之前要非常小心。你是否要继续和一个证书过期的网站做生意?或许不会吧。如果点击查看证书,你可能看到:

你可以看到该网站的证书早已过期,这也是为什么浏览器不希望这个网站的原因!点击一下certification path tab,你可以看到:

这个证书链接都是过期的!

另一种原因可能是你的浏览器不知道谁签发了这个证书:

缺乏一个trusted certification authority并不一定意味着网站不能信任。仅仅意味着浏览器不知道 谁能为该网站做担保,因此不会自动接收并信任他。这个场景下失败的原因是证书由该网站所在公司自己签发的,而未被wellknown的CA所签名(signed),比如:Verisign,Thawte等。

另一种失败的原因是使用该证书的服务器本身和证书中的server name并不一致。比如,我们使用https://fastmail.com来访问,你就可以看到下面的信息:  

从这个对话框,你可以看到出错的线索:https://fastmail.com这个被访问的url,而证书是被issued to带www的url : www.fastmail.com

证书是如何签发(issued)和被信任的(trusted)?

我以前提到过证书可以有两种方式来获得: 要么你自己签发(issue),或者从一个trusted certificate authority(CA)来购买。

如果一个站长他自己issue一个certificate并且部署在web server上,那么可以预见的是所有访问网站的用户都会出现"The security certificate was issued by a company you have not chosen to trust.."的警告信息。

这种情况下,你也可以通过import(导入)该证书到你的浏览器来实现信任self-issued certificates.对不同的浏览器,导入证书的方法是不同的,对IE来说,像下面这个样子:

一旦你导入CA成功,你就可以在trusted root certification authorities中看到它。

现在,由于我已经告诉了IE我会信任这个网站,那么这时再去访问对应网页时,就不会再显示对应的告警信息。

被已经信任的Certification Authorities所签名(signed)的certificates将会被浏览器默默地接受而不出现任何告警信息,但是如何构成一个trusted CA呢?很简单:告诉你的浏览器它可以信任来自such-and-such组织签名的certificate.而这些root ca就是被built-in带来的。

这些root trusted ca都是由那些有财务信任关系的公司所签发的证书。Verisign就是一个trustworthy公司,因此任何被VeriSign所signed签发的证书都被认为是trustworthy.在CA industry中,还有很多类似的公司,比如Equifax,Thawte等等。这些公司具有相应的职责去维护这个信任链;如果这些公司sign并issue了针对untrustworthy的web网站,那么就会越来越少的人信任他们公司,因此就会越来越少的人去购买他们的证书,而这将会导致他们的损失。

本质上来说,这些公司签发的证书和我自己签发的证书没有区别唯一的区别是:这些公司比我可是更加有名,也更值得信赖。Who would you trust, some random stranger from the Internet - no matter how trustworthy he claims to be - or a company which already has a reputation for trustworthiness? 

结论:为什么无论如何我们需要合法的证书?

原因很简单:一切来自于信任,真实性和完整性的需要。如果我运营着一个ssl网站,比如我们运营着一家在线银行-那么我必须保证和我的connection连接都必须是安全的,不被篡改的。

CA证书的分类

https://www.barretlee.com/blog/2016/04/24/detail-about-ca-and-certs/

 

需要强调的是,不论是 DV、OV 还是 EV 证书,其加密效果都是一样的! 它们的区别在于:

  • DV(Domain Validation),面向个体用户,安全体系相对较弱,验证方式就是向 whois 信息中的邮箱发送邮件,按照邮件内容进行验证即可通过;
  • OV(Organization Validation),面向企业用户,证书在 DV 证书验证的基础上,还需要公司的授权,CA 通过拨打信息库中公司的电话来确认;
  • EV(Extended Validation),打开 Github 的网页,你会看到 URL 地址栏展示了注册公司的信息,这会让用户产生更大的信任,这类证书的申请除了以上两个确认外,还需要公司提供金融机构的开户许可证,要求十分严格。

转载于:https://www.cnblogs.com/kidsitcn/p/7777730.html

这篇关于SSL Certificates深入理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/292640

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝

深入手撕链表

链表 分类概念单链表增尾插头插插入 删尾删头删删除 查完整实现带头不带头 双向链表初始化增尾插头插插入 删查完整代码 数组 分类 #mermaid-svg-qKD178fTiiaYeKjl {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

如何通俗理解注意力机制?

1、注意力机制(Attention Mechanism)是机器学习和深度学习中一种模拟人类注意力的方法,用于提高模型在处理大量信息时的效率和效果。通俗地理解,它就像是在一堆信息中找到最重要的部分,把注意力集中在这些关键点上,从而更好地完成任务。以下是几个简单的比喻来帮助理解注意力机制: 2、寻找重点:想象一下,你在阅读一篇文章的时候,有些段落特别重要,你会特别注意这些段落,反复阅读,而对其他部分

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“