Documentum Rest 服务 - 信任来自 Java 客户端的 SSL 证书

2024-01-02

我的需要是接受来自独立 Java 应用程序(将捆绑为 JAR)的 REST Web 服务 URL ( https://dctm-rest) 上启用的 SSL 证书。

据我所知,最好的方法是使用 Keytool 创建 KeyStore/TrustStore,从浏览器/openssl 下载证书并将其添加到 TrustStore。这样我们就创建了依赖项,每次续订时都必须有人继续更新证书。

有人可以指导我通过删除手动依赖来实现此功能吗?


您必须将服务器证书包含在https://dctm-rest进入您的 JRE(信任库)的白名单

Options

1) 将服务器证书包含在 JRE 密钥库中 (jre/lib/security/cacerts) (不建议)

要下载服务器证书,请使用浏览器打开站点,右键单击绿色锁,选择“查看证书”并下载

探索 cacerts 和导入受信任证书的最简单方法是使用像 portecle 这样的 GUI 工具(http://portecle.sourceforge.net/ http://portecle.sourceforge.net/)。您还可以使用密钥工具

keytool -import -trustcacerts -keystore /opt/java/jre/lib/security/cacerts -alias mycert -noprompt -storepass changeit -file /tmp/examplecert.crt

See 如何将自签名证书正确导入到默认情况下可供所有 Java 应用程序使用的 Java 密钥库中? https://stackoverflow.com/questions/11617210/how-to-properly-import-a-selfsigned-certificate-into-java-keystore-that-is-avail

2) 使用您自己的信任库并包含服务器证书(受到推崇的)

System.setProperty ("javax.net.ssl.trustStore", path_to_your_trustore_jks_file);
System.setProperty ("javax.net.ssl.trustStorePassword", "password");

您还可以创建 SSLSocketFactory 并在连接之前添加到您的连接或使用静态方法应用于所有连接

HttpsURLConnection.setDefaultSSLSocketFactory(sslFactory);

这是创建套接字工厂的示例

//Load JKS keystore that includes the server certificate or the root
KeyStore keyStore = ... 
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(keyStore);
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, tmf.getTrustManagers(), null);
sslFactory = ctx.getSocketFactory();

3) 根本不要使用信任库(完全不推荐)

See 为单个连接禁用 SSLHandshakeException https://stackoverflow.com/questions/37724901/disable-sslhandshakeexception-for-a-single-connection/37861267#37861267(我不会复制解决方案)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Documentum Rest 服务 - 信任来自 Java 客户端的 SSL 证书 的相关文章

随机推荐

  • 使用.NET检查AWS中是否存在SQS

    我能够使用 AWSSDK SQS 包中的 AmazonSQSClient 客户端成功将消息发送到 NET 中的队列 如何检查特定队列是否存在以及是否未创建 您需要使用以下命令运行检查AmazonSQSClient GetQueueUrl s
  • bash 脚本中的 if 条件取反

    我一直试图否定以下命令 wget q tries 10 timeout 20 spider http google com if eq 0 then echo Sorry you are Offline exit 1 如果我连接到互联网 则
  • 如何使用 Spring Boot 和 Spring Security 保护 REST API 的安全?

    我知道保护 REST API 是一个被广泛评论的话题 但我无法创建一个满足我的标准的小型原型 并且我需要确认这些标准是现实的 如何保护资源以及如何使用 Spring 安全性有很多选择 我需要澄清我的需求是否现实 我的要求 基于令牌的身份验证
  • 如何获取写入的记录数(使用DataFrameWriter的保存操作)?

    使用spark保存记录时有没有办法获取写入的记录数 虽然我知道它目前不在规范中 但我希望能够执行以下操作 val count df write csv path 或者 能够对步骤的结果进行内联计数 最好不使用标准累加器 将 几乎 同样有效
  • iOS 10 中 UICollectionView 预取数据源?

    目的是什么prefetchDataSourcesiOS 10 中引入 我刚刚在 XCode 8 GM Seed 中运行一个项目并开始出现错误 MessagesExtension 17902 1238603 Assertion failure
  • 在Python中打印字符串会在字符串之前打印“u”吗?

    打印列表中元素之前的 u 我没有在代码中输入 u hobbies prompt user three times for hobbies for i in range 3 hobby raw input Enter a hobby hobb
  • 使用 IDE 运行 Spring-boot 的 main

    我有一个 spring boot 应用程序需要 可作为 Servlet 容器中的战争进行部署 可通过 mvn spring boot run 运行 我还希望能够通过右键单击 IDE Eclipse 或 IntelliJ IDEA Commu
  • NSFilePresenter 方法永远不会被调用

    我正在尝试编写一个简单的 玩具 程序 它使用 NSFilePresenter 和 NSFileCoordinator 方法来监视文件的更改 该程序由一个加载 硬编码 文本文件的文本视图和一个用于保存文件更改的按钮组成 我的想法是 我有两个实
  • 在 Windows Mobile 应用程序中播放 YouTube 视频

    我正在开发一个用于 Windows Mobile 6 或可能 5 的应用程序 用于播放 YouTube 视频 嗯 它should播放 YouTube 视频 并控制 查询播放器的状态变化 当前帧 时间等 在网上搜索了相当长一段时间 以及一些尝
  • Hibernate 验证器中的自定义消息密钥不适用于 message.property

    我正在研究 Spring Boot 我使用 Hibernate Validator 来验证我的 bean 我添加了一个自定义键 NotEmpty注释 并在 message properties 中添加键 值对 但它没有从 message p
  • Laravel 4:如何向 DB::table 添加范围?

    使用 Eloquent 模型添加范围很容易 public function scopeMyScope query Do stuff to that query 但如何添加范围DB table 我使用此查询来获取页面浏览量 views DB
  • 如何在 Dart 中只替换字符串中的一个字符?

    我试图仅替换字符串 dart 中的一个字符 但找不到任何有效的方法 由于字符串不是 Dart 中的数组 我无法通过索引直接访问字符 并且没有内置函数可以做到这一点 这样做的有效方法是什么 目前我正在这样做 如下所示 List
  • 对话框过渡效果

    I am currently working on the transition effects for my dialog Please refer to the image below 我的对话框的入口动画应该是从上到中 而退出动画应该
  • 重写 LINQ 扩展方法

    有没有一种方法可以覆盖扩展方法 提供更好的实现 而无需显式转换为它们 我正在实现一种数据类型 它能够比默认扩展方法更有效地处理某些操作 但我想保留 IEnumerable 的通用性 这样任何 IEnumerable 都可以传递 但是当我的类
  • 如何将脚本添加到 jqgrid 行上的自定义按钮?

    我正在尝试处理 jqgrid 中自定义按钮的点击 我显示了按钮 但是当单击它们时 我的函数不会运行 如果我单击 jqgrid 外部的按钮 脚本就会运行 jqgrid会消耗按钮点击吗 不确定我缺少什么或不理解什么 这是网格 我没有重新加载整个
  • 更改 NSTableView 的边框颜色

    我可以改变颜色吗NSTableView s border 指针处的灰线 谢谢 你需要子类化你的NSScrollView NSScrollView通常不进行任何绘图 并且可能以这种方式与其子视图进行奇怪的交互 我建议放一些类似的东西 void
  • 通过 JSON/AJAX 更新 HTML

    自从我听说 JSON 以来 我一直在我的 Rails 应用程序中使用 JSON 来处理 AJAX 功能 因为使用 RJS 渲染 HTML 感觉 错误 因为它违反了 MVC 我从事的第一个 AJAX 密集型项目最终有 20 30 个控制器操作
  • 通过 Perl 和 Net::OpenID::Consumer 对 Google Apps 进行 OpenID 身份验证失败

    我在 Google 的应用程序集成支持论坛上提出了这个问题 但得到的回复为零 也许这里有人可以帮助引导我走向正确的方向 我正在尝试将 Perl 应用程序与 Google Apps 集成 但在 OpenID 身份验证方面遇到了一些问题 我一直
  • 如何将 C String 转换为 NSString?

    我已经能够找到类似的方法 NSString stringWithCString encoding 但当 cstring 是指针时 它们似乎表现不佳 首先 不要使用initWithCString 它已被弃用 有几种方法可以做到这一点 cons
  • Documentum Rest 服务 - 信任来自 Java 客户端的 SSL 证书

    我的需要是接受来自独立 Java 应用程序 将捆绑为 JAR 的 REST Web 服务 URL https dctm rest 上启用的 SSL 证书 据我所知 最好的方法是使用 Keytool 创建 KeyStore TrustStor