首页 文章

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

提问于
浏览
20

我对证书有一些基本问题 . 首先让我解释一下我对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涉及非对称加密模式,即仅用于“验证”,之后它涉及对称加密模式,以实现它们之间的实际数据传输 .

我的问题如下,

  • 我从link(与IIS服务器相关)中读到有两种类型的证书 . 一个是客户端证书,另一个是服务器证书 . 我认为客户端发起请求的是客户端证书,另一个是服务器证书 . 客户端和服务器证书w.r.到OpenSSL有什么区别?这些证书中的CN名称与OpenSSL有什么区别吗?

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

2 回答

  • 7

    Server Certificates:

    服务器证书是在SSL握手期间由服务器持久保存的服务器的身份 .

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

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

    Server certifictae

    Server Certificates Purpose

    通过x509扩展参数清楚地提到

    Certificate Key usage 
    
     1. Signing 
     2. Key Encipherment
    

    Signing : - 表示证书中的密钥可用于证明证书CN中提到的服务器的身份,即实体身份验证 .

    Key Encipherment : - 表示可以使用ceritificate中的密钥加密为会话派生的会话密钥(symmetic密钥)

    Client Certificate :-

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

    Client Certificates Purpose

    通过x509扩展参数清楚地提到

    Certificate Key usage 
    1. Signing
    
  • 3

    1)你链接的文章很好:-) . 换句话说:证书中有一个字段,说明允许使用哪些用途 . 当您创建/请求证书时,您要求为特定用途使用证书,并且CA会在此基础上对其进行签名 .

    为不同目的使用不同的证书并确保每个证书只能用于其预期目的更安全 . (或者如果你想玩世不恭,CA会让你购买单独的客户和服务器证书,以便他们获得更多销售 . )

    例如,您可能希望您的Web服务器能够将自己标识为您的公司用于服务目的,但不希望相同的证书能够用于签署与其他企业的传出连接 .

    2)你是对的 .

相关问题