将SSL证书用于私有应用程序的正确方法是什么?私有我的意思是我是唯一的用户,软件正在我的计算机上运行。
我希望在我的两个程序之间进行加密通信。我想在它们之间发送密码,所以我需要确保远程程序不是假的/黑客攻击。
据我所知,如果没有涉及第三方,我不需要从CA获得付费SSL证书。
以下是否正确?
还有其他方法吗?
答案 0 :(得分:1)
服务器具有私钥和自签名SSL证书。
是
客户端拥有服务器自签名证书的副本(需要得到很好的保护)。
客户端具有证书副本或证书公钥或这些证书的指纹。由于证书是公开的,因此不需要保护这些信息。只需要保护服务器的私钥(仅驻留在服务器端),因为使用此密钥可以证明证书的所有权。
在握手期间,服务器将证书发送给客户端。
是
客户端检查证书是否相同。
有点儿。它可能会检查证书或公钥或指纹。
客户端可以启动加密传输。
是
我建议您阅读有关certificate and public key pinning的OWASP文章。它还包含各种环境的示例代码。
答案 1 :(得分:0)
客户端拥有服务器自签名证书的副本(需要得到很好的保护)。
客户端没有服务器证书的副本。他们在SSL握手中获得它
客户端检查证书是否相同。
NO!客户将拥有签署服务器证书的证书颁发机构的公共证书。他们将使用CA证书验证服务器证书,包括证书到期,CRL等。不比较'相同'
在您的情况下,您使用的是自签名证书。应使客户端忽略自签名证书并继续SSL握手。
我建议你再次通读SSL握手序列。