我为根CA,中间CA和服务器创建了三个证书。他们代表了简单的信任链:TLS放置证书的位置
server -> intermediate -> root
问题是如何正确地把它们放在客户端和服务器上。
我有两个选择:
放在客户端的trustStore等根证书 - 中间和服务器证书服务器的keyStore。因此,服务器将发送两个证书,客户端将验证具有中间的服务器证书,这将通过存储在客户端的trustStore中的根证书进行验证。
将根和中间证书客户的trustStore时服务器将只存储自己的证书在的keyStore。
赐教:)
您的证书是否来自可信任的CA或自签名? – devang
@devang自签名 - 我使用OpenSSL生成所有证书 –
由于自签名,您的步骤对于服务器端设置是正确的。此外,您必须将root-ca放置在客户端的信任库中,并将root-ca放入'/ etc/ssl/certs'目录并运行'ca_rehash'。确认你使用'openssl s_client -connect:'连接服务器是否正确。只有当您计划从命令行进行http调用时才需要放入/ etc/ssl/certs,例如卷曲/ wget的。 –
devang