很多人都知道 ssl 的握手过程,很多人都知道 server 给 client 发送的第一个消息是 hello ,然后是一个证书,其实之所以发送这一个证书其实仅仅是为了协商一个对称共享密钥,如果有其它方式可以做到这一点,那么完全不需要传输证书,条件是能安全共享一个对称密钥,除了 rsa 证书之外,固定 DH 算法也有一个证书,它传输的是一个 DH 协议中的参数,同时服务段需要客户端提供证书;瞬时 DH 不使用证书,但是使用认证;匿名 DH 不进行认证。如果你有任何更好的方式协商一个密钥,那么就完全不必使用证书。 共享密钥协商的方式有两种,一种是密钥传输,比如 RSA ,另一种是密钥协商 DH 。