使用Java处理第三方SSL证书的最佳实践

Nic*_*s C 9 java ssl-certificate

我正在开发一个通过https调用第三方Web服务的应用程序.所以我需要将此证书添加到我的应用程序的信任库中.我可以看到3个解决方案来解决我的问题:

  • 将此证书添加到 $JAVA_HOME/jre/lib/security/cacerts
  • 创建一个自定义信任库并启动我的JVM -Djavax.net.ssl.trustStore= ...
  • 以编程方式在启动我的应用程序时加载此信任库

您建议/阻止我使用哪种解决方案?

mok*_*aya 3

我更喜欢第二个。因为;

对于第一个;当您更改 java 版本时,您需要做额外的工作(您必须再次将这些 ssl 证书添加到 cacerts)。

对于第三个;当您需要添加另一个 ssl 证书时。你必须改变你的代码。

所以,第二个是最好的选择,因为;当新的 ssl 出现时,您不需要更改代码(您只需将其添加到外部 trustStore),并且在升级 java 版本时,您无需对这些证书执行任何操作。