【问题标题】:Can JVM trust a self-signed certificate for only a single run?JVM 可以只信任一次运行的自签名证书吗?
【发布时间】:2020-12-20 01:13:16
【问题描述】:

我正在尝试让 clojure jar 信任我在运行 jar 时创建的自签名证书,但我实际上并不想将该证书添加到我的证书存储中。有什么方法可以让 JVM 暂时信任这个 openssl 自签名证书,或者只信任一次运行?

如果有语言内的方法可以做到这一点,并且如果它有帮助,我正在使用clj-http-lite 库,使用get 函数。不过,对于通用 JVM 范围的解决方案,还有额外的点。

【问题讨论】:

    标签: java ssl clojure jvm self-signed


    【解决方案1】:

    您可以创建一个(临时)信任库并在命令行上使用javax.net.ssl.trustStorejavax.net.ssl.trustStorePassword 系统属性对其进行配置:https://docs.oracle.com/javadb/10.8.3.0/adminguide/cadminsslclient.html

    【讨论】:

      【解决方案2】:

      我不建议使用 JVM 的命令行参数 javax.net.ssl.trustStore 覆盖全局信任库。相反,如果您需要使用自签名证书连接到远程服务器,我建议在代码中构建 SSL 上下文并将其用于连接。当您不想降低全局 JVM 安全性并且如果您有多个端点,每个端点都需要自签名证书进行连接时,这种方法会更好。

      这里是Building SSL context 的例子,可以在http/get 函数中使用。您可以将其传递给 request 函数(请参阅代码以获取不安全?选项并采用相同的方式)。

      【讨论】:

      • 我的投票被锁定了,我投了反对票,但事实证明我也需要一种语言内的方式来进行单元测试。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 2018-03-10
      • 2016-11-29
      • 2019-09-03
      • 1970-01-01
      • 2018-03-20
      相关资源
      最近更新 更多