使用SSL签署证书验证程序?
我在Java中有一个客户端/服务器SSL套接字实现,其中自签名证书已生成并导入到客户端信任库中。 服务器在其密钥库中具有自签名证书的副本。
同意的密码套件是TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
,这是一种癫痫性Diffie-Hellman变体。 自签名证书使用RSA密钥对,公钥在证书上列出以进行加密。
我不完全确定的是自签名证书的客户端验证过程如何在Java中工作。 我了解TLS通常如何验证证书; 在其签名上使用CA的公钥,然后将解密后的哈希与生成的指纹进行比较。
如何使用自签名证书验证签名? 我在Java中调试客户端(使用参数-Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol -Djavax.net.debug=ssl
),我没有看到提及用于解密签名的自签名公钥或指纹哈希。 但是,证书签名和公共RSA密钥当然是被提及的。
非常感谢。
客户端使用服务器证书中提供的服务器的公钥来验证签名。 只有该证书的所有者才拥有相应的私钥,因此只有证书所有者才能生成可通过证书中的公钥验证的有效签名。 所以这证明了证书的所有权。 证书是自签的这一事实在这个阶段与它无关。
链接地址: http://www.djcxy.com/p/21763.html