2012-04-28 172 views
4

我是OpenSSL工具的初学者。我不明白一些概念。你能向我解释这些概念吗? 我想了解一些概念,如CA,Self-Signed Certificate或任何概念,以便更好地理解。OpenSSL中自签名证书的含义

(很抱歉,如果我使用了错误的术语或语法,我正在学习英语。)

+0

u需要了解的PKI(公钥基础设施)。了解证书... – Balamurugan 2012-05-09 09:58:35

回答

5

证书的目的是以可验证的方式声明一条信息。公钥证书(更具体地说,在此上下文中的X.509证书)声明公钥,标识符(Subject Distinguished Name和/或Subject Alternative Names)与各种其他属性之间的绑定。总而言之,这些信息被签署以形成证书。

X.509证书同时具有发行人和主体。主题是代表该证书标识谁或什么的标识符(以及谁拥有与此证书中的公钥匹配的私钥)。发行者代表使用其私钥签署此证书的个人或组织的标识符。

证书使用可以大致分为两个不同类别:用于特定应用程序或服务(例如,认证SSL/TLS服务器)的证书以及用于证明其他证书有效性的证书。

对于后者,证书用作公钥基础设施(PKI)的构建块。证书颁发机构(CA)是颁发证书的机构:它签署将证书中的公钥绑定到主体的断言。在这样做时,它将自己的名称作为发行人名称放入其发行的证书中。

如果您将证书与护照(将您的照片和姓名绑定在一起)进行比较,CA将成为您的护照管理机构:那些实际证明护照的内容属实的人,以便其他人能够验证它。

信任CA可让您信任其颁发的证书。您可以在您所信任的CA与您之前从未见过的CA颁发的证书之间建立一个信任链。

除此之外,还有一个“引导”问题:您如何相信CA?

自签证书是发证人与主题相同的证书;它们使用与它们包含的公钥相匹配的私钥进行签名。他们处于信任链的顶端。他们往往是CA证书(除非为特定服务定制,否则无需外部验证就无法信任)。

CA证书是可用于颁发/验证其他证书的证书。 (如果它们位于根/自签名CA证书和希望验证的证书之间的链中间,它们可以是中间CA证书。)定义如何使用证书验证其他证书的规则在PKIX specification (RFC 3280/5280)

浏览器和操作系统附带默认信任的CA证书预先安装列表。这些大多是商业CA,它们检查证书中的服务信息,通常是收费的。在副本中,您可以信任他们颁发的证书的内容(大多数情况下,这不是一个完美的系统)。这里涉及“信仰的飞跃”,因为您需要相信浏览器/操作系统只包含信誉良好的CA证书。

如果您使用openssl s_client,并且您看到类似“链中的自签名证书”或“无法验证证书”的消息,这并不一定意味着有什么错误,但openssl不会使用pre默认情况下,定义了可信CA证书的列表。其大部分命令都有一个选项,如-CAfileCApath,它们允许您指定您愿意信任的CA证书。

服务的自签名证书属于特定情况,服务自行声明其内容。您通常无法验证此类证书的真实性,除非您有一种外部信任方式(例如,如果您已自行将其安装在计算机上并更改为手动检查其内容,或者如果您信任的某人给了它给你)。

(您还可能有兴趣在this question关于HTTPS服务器证书是如何使用的。)

+0

感谢您的好解答。 – MJM 2012-04-29 04:52:05

2

一般证书的目的是建立一个信任链:“我相信这个第三方公司,他们信任你,所以我可以信任你。“自签证书意味着您自己生成了证书,因此我实际上并未获得对您的信任。 (这些对测试非常有用,但没有其他许多。)另一种类型是可信证书,通过让信誉良好的公司向您推销一个(如Verisign)。这是一个商品市场,所以它们的价格在公司之间相当一致。它取决于证书的预期用途和范围。 (例如,用于签署Android应用的证书与用于验证https://www.example.com/的证书有很大不同。)

“CA”或证书颁发机构是颁发证书的公司。在可信证书的情况下,就是该公司 - 例如威瑞信。如果是自签名证书,CA就是您 - 您颁发了证书。

+0

用于签署Android应用程序的证书实际上与用于验证网站的证书非常相似。只有少数关键用法属性会有所不同(并且您可以使用兼容两种用法的证书),并且用于主机名验证的命名约定不一定适用于Android应用程序。 – Bruno 2012-04-28 16:31:52

+0

你是对的,虽然大多数用户不需要瑞士军刀证书,因此不会熟悉他们微妙的相似性和差异。 – robrich 2012-04-28 17:40:17

0

自签名证书会在大多数浏览器中导致某种“不可信”的警报,询问您是否要继续并添加异常等。这并不意味着该连接的安全性会降低 - 但它是仍然通过SSL。

一般情况下,CA会收取费用,但如果您搜索,则会收取一些免费费用。