所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

什么样的证书包含私钥?

发布时间:2020-04-15 16:26:26

资讯分类:私钥  证书  包含  证书  服务器  客户端
什么样的证书包含私钥?

谢邀。
最近在写https代理的程序,使用openssl实现ssl连接,有涉及到ssl证书。
https的作用有三:1加密传输 2认证 3数据完整性
ssl证书的主要是用来做认证和加密。大多数证书基于 X.509 v3 证书标准。
下面以一次ssl连接进行说明。

比如客户端要认证服务器,服务器怎么证明自己是真实的服务器,而不是钓鱼网站呢?这需要服务器有个证书。证书包含以下信息:
使用者的公钥值。
使用者标识信息(如名称和电子邮件地址)。
证书的有效时间。
颁发者CA标识信息。
颁发者CA的数字签名。
你可以在IE中Internet选项》内容》证书 中看看证书长什么样。


有效的证书需要由权威机构CA签名,CA会用自己的私钥来生成数字签名。这个权威机构CA客户端是可以完全信任的,客户端浏览器会安装CA的根证书,由CA签名的证书是被CA所信任的,这就构成了信任链,所以客户端可以信任该服务器的证书。

客户端与服务器建立ssl连接时,服务器将自身的证书传输给客户端,客户端在验证证书的时候,先看CA的根证书是否在自己的信任根证书列表中。再用CA的根证书提供的公钥来验证服务器证书中的数字签名,如果公钥可以解开签名,证明该证书确实被CA所信任。再看证书是否过期,访问的网站域名与证书绑定的域名是否一致。这些都通过,说明证书可以信任。

接下来使用服务器证书里面的公钥进行服务器身份的验证。 客户端生成一个随机数给到服务器。 服务器对随机数进行签名,并回传给到客户端。 客户端用服务器证书的公钥对随机数的签名进行验证,若验证通过,则说明对应的服务器确实拥有对应服务器证书的私钥,因此判断服务器的身份正常。否则,则任务服务器身份被伪造。这些都没问题才说明服务器是可信的。

接下来客户端会生成会话密钥,使用服务器公钥加密。服务器用自己的私钥解密后,用会话密钥加密数据进行传输。ssl连接就建立了。

留言与评论(共有 0 条评论)
   
验证码:
Top