问题 1>所以我在服务器上使用了与客户端信任库相同的密钥库,这是由命令“ keytool -genkey -alias signFiles -keystore examplestore ”生成的。这里发生了什么 ?。客户端如何从该示例库(服务器的密钥库但客户端的信任库)文件中选择受信任的 CA,或者更恰当地说,密钥库如何充当信任库以及该文件究竟由什么组成?
所以我所知道的是,密钥库具有公钥和私钥对以及证书。对于当前情况,它尚未由 CA 签署证书。
问题 2>因此,我们需要创建该 .crt 文件并由 CA 对其进行签名,然后再次将其嵌入到 keyStore 中。嵌入crt文件就是导入.这样理解对吗?自签名证书是什么意思?命令“ keytool -genkey -alias signFiles -keystore examplestore ”是否创建自签名证书?
我还尝试为客户端附加密钥库,为服务器附加信任库,它在运行相应代码时在参数中引用由命令“ keytool -genkey -alias signFiles1 -keystore exampstore1 ”生成的相同文件。代码成功运行。
我还尝试使用参数,例如将服务器的信任库更改为不验证客户端密钥库的内容。但代码仍然有效。
但是当我尝试更改不验证服务器密钥库的客户端的信任库时,代码抛出以下异常“javax.net.ssl.SSLHandshakeException:收到致命警报:certificate_unknown”。
主要问题:
问题 3> 这是否意味着它不触发相互认证,如果是,如何使其触发?它首先支持相互身份验证吗?
慕桂英546537
相关分类