证书的私钥

时间:2014-10-01 23:10:44

标签: c# .net ssl certificate x509certificate

我连接到服务器并在作为客户端进行身份验证后

sslStream = new SslStream(_serverStream, false, SslCertificateValidatorCallback);
sslStream.AuthenticateAsClient(host);

我想将收到的证书用作服务器。可能吗?为此,我需要私钥,但这个证书没有私钥。

所以我的问题是: 1.如果我有公钥证书,我可以在该证书上添加私钥吗? 2.我可以根据收到的公钥和私钥创建新证书吗?

任何想法对我都非常有帮助。

由于

1 个答案:

答案 0 :(得分:0)

我建议您对证书加密/非对称加密进行一些研究,因为您的问题表明该领域缺乏理解。不要试图粗鲁,只是说。

要将证书用作服务器,您必须已拥有证书的私钥。

简而言之:

  1. 服务器绑定到端口并拥有带有公钥/私钥对的证书
  2. 向服务器发出请求
  3. 客户端使用证书验证服务器的身份
  4. 如果有效通信继续
  5. 公钥用于加密到服务器的流量
  6. 服务器使用其私钥解密流量
  7. 应该注意,证书通常仅用于交换对称密钥(对称加密更快)。因此,在验证证书后,将进行密钥交换,并使用对称加密密钥恢复通信。

    Here is an article to get you started And here

    具体回答您的问题:  1.不  2.有可能“欺骗”证书 - 然而,这将是顽皮的,大多数(好的)客户会流行并阻止任何进一步的流量发生