OpenSSL客户端证书与服务器证书

我对证书有一些基本的问题。 让我先解释一下我对SSL认证的理解。

SSL / TLS基本上有两个主要的东西,

  • 身份验证 - 确保我们在两端与正确的派对进行沟通。
  • 加密 - 加密两端之间传输的实际数据。
  • 证书有公钥和一些附加信息。 客户端(比如'C')和服务器(比如'S')之间的SSL通信就是这样工作的,

  • C向S发起请求。
  • S将其公共密钥发送给C.
  • C验证S的身份(服务器身份验证或服务器身份验证)
  • C将其公钥发送给S.
  • S验证C的身份(客户身份验证或客户端身份验证)
  • C生成对称密钥或会话密钥(如'K'),并用S公钥对其进行加密并发送给服务器。
  • 现在C和S都有共享的对称密钥,它将用于加密数据。
  • 在这里,我认为步骤4和5适用于客户端身份验证是可选的。 纠正我如果我错了。

    步骤1到5涉及非对称加密模式,即仅用于'验证',然后它涉及实际数据传输之间的对称加密模式。

    我的问题如下,

  • 我已经从这个链接(与IIS服务器相关)读取了两种类型的证书。 一个是客户端证书,另一个是服务器证书。 我认为在客户端发起请求的客户端是客户端证书,另一个是服务器证书。 客户端和服务器证书与OpenSSL有什么区别? 这些证书中的CN名称与OpenSSL有任何区别吗?

  • 我被要求使用客户端证书进行身份验证。 这是否意味着我们正在绕过服务器身份验证并仅使用客户端证书进行身份验证? 我不这么认为。 根据我的理解,除了服务器认证之外,还应该完成客户端认证。 如果我在这里错了,请纠正我。


  • 服务器证书:

    服务器证书是在SSL握手期间由它来服务的服务器的身份。

    通常,它们由客户熟知的CA颁发,颁发证书的基础是拥有该服务器的一些公认的标识符,对于Web服务器而言,其是服务器的主机名,其用于到达服务器

    Example:-  http://blog.8zero2.in/
    

    服务器证书

    服务器证书目的

    明确提及x509扩展参数

    Certificate Key usage 
    
     1. Signing 
     2. Key Encipherment
    

    签名 : - 这意味着证书中的密钥可以用来证明证书的CN中提及的服务器的身份,即实体身份验证。

    密钥加密 : - 它意味着证书中的密钥可以用来加密为会话派生的会话密钥(四元密钥)

    客户证书: -

    客户端证书作为名称指示用于标识客户端或用户。 它们用于向客户端验证服务器的身份。 持有客户证书的目的不同它可能代表拥有电子邮件地址或Mac地址,通常映射到证书的序列号

    客户证书目的

    明确提及x509扩展参数

    Certificate Key usage 
    1. Signing 
    

    1)你链接的文章是一个很好的:-)。 换言之,证书中有一个字段说明允许使用哪些用途。 当您创建/申请证书时,您需要为特定用途申请证书,并且CA会在此基础上签名。

    为不同目的使用不同证书更加安全,并确保每个证书只能用于其预期目的。 (或者,如果你想成为愤世嫉俗的人,CA可以让你购买单独的客户端和服务器证书,以便获得更多的销售额。)

    例如,您可能希望您的Web服务器能够将自己标识为贵公司以用于服务目的,但不希望该证书能够用于签署到其他业务的传出连接。

    2)你是对的。

    链接地址: http://www.djcxy.com/p/21765.html

    上一篇: OpenSSL client certificates vs server certificates

    下一篇: signed certificate verification procedure with SSL?