gpt4 book ai didi

java - 只接受某些证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:28 25 4
gpt4 key购买 nike

我已经创建了自己的 CA,我想使用它的证书与使用 SSLSockets 的服务器进行通信。我可以用我目前正在使用的信任库来做到这一点,但我想有更多的限制,这样我的服务器只接受来 self 明确决定的客户端的连接,这些客户端必须拥有由我的 CA 签名的证书(现在,任何拥有由我的 CA 签名的证书被授予访问权限)。这背后的目标是能够通过从服务器的信任库中删除一些证书来撤销证书。

假设有两台设备 A 和 B,它们都具有我的 CA 签名的证书。我只想授予对 A 的访问权限,而不是 B。如果我在服务器的信任库中只有 A 的证书,我会得到两个客户端的 BadCertificate 异常;在我添加我的 CA 的 pem 文件的那一刻,A 和 B 都被授予访问权限,无论 A 或 B 的证书是否明确添加到信任库。

对于这种方法有什么想法或替代方法吗?谢谢。

最佳答案

PKI 基础设施的撤销部分(例如,如果您拥有自己的 CA,您将获得什么)通常使用 CRL(证书撤销列表)或 OCSP(在线证书状态协议(protocol))完成。

如果这对于只有几个客户端的小型 PKI 来说太费力了,您还可以将您接受的证书(白名单)或被撤销(黑名单)的证书的指纹硬编码到您的应用程序中,并检查每个连接是否您获得的证书与指纹匹配。当然,您需要在每次撤销(黑名单)或每当您颁发新证书(白名单)时更新应用程序,因此这不能很好地扩展。但是,需要分发给每个客户端的 CRL 也会出现同样的问题。

OCSP 的扩展性更好,因为客户端会尝试在连接时检索吊销状态,但随后您需要设置 OCSP 响应程序。

关于java - 只接受某些证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com