我有一个关于 ssl 在 java 中的用法的问题。
我的需求很简单,连接服务器(https,ldaps,...),使用服务器的CA证书(pem格式)
当使用 api 作为 curl 或我猜的许多其他方式时,在 C++ 或命令行中,您可以在执行连接时指定单个 CA 证书(例如以 pem 格式)。
如果我仔细搜索(嗡嗡声),在 Java 中(我指的是标准库)它略有不同。
- 要么将您的证书添加到信任库中,必须通过外部应用程序作为 key 工具对其进行管理(当然您可以通过编程方式管理您的信任库,但这不是我的观点) [此外,您可以指定具有系统属性的信任库,但不能直接指定证书]
- 您必须编写一些代码,例如重载 SslContext 或 TrustManager 类,才能“即时”添加证书。
我是否缺少更简单的方法,例如方法“connection.setCA(String caCertPath)”?
谢谢,
最佳答案
回复:“我是否缺少更简单的方法,例如方法“connection.setCA(String caCertPath)”?”
我想这取决于您用来实现应用程序的 java 类。 但据我所知,答案是:不。您确实需要先将证书存储在 keystore 中,以供您正在使用的类使用。
我不知道有任何类可以按照您期望的证书使用方式工作,但我想您可以只编写该类以位于您不喜欢的类之上。
关于java - Java 中的 SSL CA 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26355442/