据我了解,如果我们想要访问服务器的安全端点,则需要将服务器提供的 PKCS12 文件作为应用程序导入到应用程序中。
PKCS12 文件包含证书以及服务器的加密私钥。然后将该文件分发给希望与服务器的 REST 端点建立安全连接的所有客户端。我的理解错了吗?如果不是,那么我的问题是为什么服务器需要在 PKCS12 文件中添加私钥?不是潜在的安全问题吗?
加密只使用公钥完成,没有人需要知道私钥。
据我了解,如果我们想要访问服务器的安全端点,则需要将服务器提供的 PKCS12 文件作为应用程序导入到应用程序中。
PKCS12 文件包含证书以及服务器的加密私钥。然后将该文件分发给希望与服务器的 REST 端点建立安全连接的所有客户端。我的理解错了吗?如果不是,那么我的问题是为什么服务器需要在 PKCS12 文件中添加私钥?不是潜在的安全问题吗?
加密只使用公钥完成,没有人需要知道私钥。
客户端使用的 PKCS12 应包含客户端的私钥和证书/链,用于对客户端进行身份验证,以便服务器知道 SSL/TLS 连接来自合法/授权客户端,因此应接受此连接上的请求和/或给予适当的特权。理想情况下,客户端应该使用自己生成的密钥以及服务器信任的 CA 颁发的证书或服务器本身颁发的证书,但在某些情况下,像服务器管理员这样的权限只提供密钥和PKCS12 中的证书,因此他们不必每天花费 20 或 30 个小时来指导用户 PKI 如何工作以及如何生成密钥以及如何生成不是错误类型或太短或其他不可接受的密钥以及如何将数据输入到 CSR 中,什么是CSR,为什么 CSR 不是证书也不是密钥,为什么他们的 CSR 有缺陷,以及他们应该如何将正确的数据输入到 CSR 中以使其实际工作和如何查找他们 2 小时前生成但现在丢失或删除或覆盖或转换为其他东西或放在错误的机器上等的密钥。
客户端密钥对应该与服务器密钥对不同,并且服务器私钥确实不应该分发给客户端,或者除了密钥备份设施或替换服务器之外的任何地方。如果服务器使用自签名证书或由非预信任 CA 颁发的证书,则证书(非密钥)用作服务器的信任锚,证书本身(如果是自签名证书),否则通常是 CA 根证书,必须在客户端上导入为受信任的。