据我了解数字证书的工作情况: 1.服务器生成公钥和私钥 2.然后生成CSR并将其提交给CA. 3. CA使用其私钥对其进行签名,并将证书返回给服务器
向服务器发送数据时: 1.使用服务器的公钥加密数据并进行传输。只有服务器才能解密它,因为它有私钥
从服务器下载数据时: 1.服务器使用其私钥加密数据。它传输证书和数据。 2.用户使用CA的公钥解密证书。 3.然后使用从解密证书获得的公钥解密数据。
我认为服务器需要的只是私钥和CA颁发的证书 客户端需求是CA公钥 我不明白的是,服务器配置也可以选择指定CA证书文件路径。如果我们谈论的是仅服务器安全性,即客户端没有使用自己的密钥,那会不会使用它?这是使用SSL / TLS的服务器配置的必需参数吗?
我希望我有意义
答案 0 :(得分:1)
向服务器发送数据时:1。使用服务器加密数据 公钥和传输。只有服务器才能解密它 有私钥
从服务器下载数据时:1。服务器对数据进行加密 使用其私钥。它传输证书和数据。 2。 用户使用CA的公钥解密证书。然后解密 使用从解密证书获得的公钥的数据。
那是完全错误的(记住,你实际上并没有用私钥加密)。那根本不是SSL的工作方式。每个会话为加密生成一个新的对称密钥。请参阅this question for more details。
CA证书用作信任锚以验证远程方的身份。
严格地说,服务器本身并不需要拥有用于签署自己的证书的CA的副本,因为它是远程方(客户端)将其作为信任锚(即它已经信任的东西)。
尽管如此,它可以将CA证书作为其服务器链的一部分发送。事实上,如果CA证书本身使用链上的另一个CA证书进行签名,则建议这样做。这样做会增加远程方进行身份验证的机会。
服务器通常可以选择指定CA证书,原因有两个(取决于选项):