如何使用UnboundID SDK通过SSL服务器证书连接到LDAP服务器?

2024-07-03

我手里有一个 SSL LDAP 服务器证书。我想用它通过 UnboundID SDK 连接到 LDAP 服务器。

我不想使用 com.unboundid.util.ssl.TrustAllTrustManager,如下所示:使用 UnboundID SDK 和 SSL 证书文件连接到 Android 应用程序中的 LDAP 服务器 https://stackoverflow.com/questions/11893608/using-unboundid-sdk-with-an-ssl-certificate-file-to-connect-to-ldap-server-in-an

以下 TrustManager 不符合我们的产品要求:

com.unboundid.util.ssl.PromptTrustManager
com.unboundid.util.ssl.HostNameTrustManager
com.unboundid.util.ssl.ValidityDateTrustManager

我不想要任何用户交互,以及我在验证证书颁发者的 TrustManager 上方的列表中错过的内容。

另外,我不想在任何密钥库中插入 LDAP 服务器证书,因此我无法使用以下命令 信托经理:

com.unboundid.util.ssl.WrapperKeyManager
com.unboundid.util.ssl.PKCS11KeyManager
com.unboundid.util.ssl.KeyStoreKeyManager

我想做类似下面代码的事情:

CertificateFactory cf = CertificateFactory.getInstance("X.509");
Certificate cert = cf.generateCertificate(byteArrayInputStream);
SSLUtil sslUtil = new SSLUtil(new CertificateTrustManager(cert));
SSLSocketFactory socketFactory = sslUtil.createSSLSocketFactory();
LDAPConnection connection = new LDAPConnection(socketFactory,
     "server.example.com", 636);

请注意,UnboundID SDK 中不存在 CertificateTrustManager。 怎么可能做到呢?


我找到了解决方案使用 UnboundID SDK 和 SSL 证书文件连接到 Android 应用程序中的 LDAP 服务器 https://stackoverflow.com/questions/11893608/using-unboundid-sdk-with-an-ssl-certificate-file-to-connect-to-ldap-server-in-an and 如何将 .cer 证书导入 java 密钥库? https://stackoverflow.com/questions/4325263/how-to-import-a-cer-certificate-into-a-java-keystore(帕特里克·M 的回答)。

现在我可以从 UI 获取证书并通过 SSL 连接到 LDAP :)

import com.unboundid.ldap.sdk.LDAPConnection;
import com.unboundid.util.ssl.SSLUtil;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import java.io.ByteArrayInputStream;
import java.security.KeyStore;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;

String base64EncodedCertificateString = "...";
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(base64EncodedCertificateString.getBytes());
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null);
CertificateFactory cf = CertificateFactory.getInstance("X.509");
int i = 0;
while (byteArrayInputStream.available() > 0) {
    Certificate cert = cf.generateCertificate(byteArrayInputStream);
    trustStore.setCertificateEntry("cert " + i++, cert);
}

TrustManagerFactory tmf = TrustManagerFactory.getInstance("X509");
tmf.init(trustStore);
TrustManager[] trustManagers = tmf.getTrustManagers();
SSLUtil sslUtil = new SSLUtil(trustManagers);
SSLSocketFactory socketFactory = sslUtil.createSSLSocketFactory();
LDAPConnection connection = new LDAPConnection(socketFactory);
connection.connect("place.myserver.com", 636);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用UnboundID SDK通过SSL服务器证书连接到LDAP服务器? 的相关文章

  • iOS MDM 证书到期

    我正在创建 MDM 服务器 并已成功完成所有步骤 并且能够在设备上安装配置文件 在设备上安装的 mobileconfig 文件中 我们传递 SSL 证书 APNS 证书和配置文件信息 1 如果服务器上的SSL证书更改了怎么办 我想很多人没有
  • Jmeter:响应代码:非 HTTP 响应代码:javax.net.ssl.SSLHandshakeException

    我有一个应用程序 URL 我需要使用 Jmeter 运行登录测试 我使用 chrome 的 blazemeter 扩展记录了登录步骤 但是当我运行它时 我收到以下错误 我知道曾经有过这样的问题 我尝试过几次 看来我的情况有所不同 我努力了
  • 通过 https 的客户端证书身份验证失败

    我正在尝试使用 https 客户端身份验证工作这个示例代码 https stackoverflow com a 4464435 789671在 Python 2 7 中 不幸的是 客户端脚本似乎没有正确验证 我无法找出原因 我生成了一个测试
  • 使用自生成的密钥来测试 java ssl 应用程序

    我正在开发一个非常简单的服务器 它使用 ssl 在 netbeans 中 为了测试它 我按照此处的说明创建了一个证书 http java sun com javaee 5 docs tutorial doc bnbxw html http
  • 在 AWS elastic beanstalk 上安装 HTTPS SSL 的过程?

    我已成功安装自我认证的 SSL 以使 https 在 AWS linux EC2 上运行 然后 我在自动缩放和负载平衡环境中的弹性豆茎上尝试它 但我失败了 我所做的过程是首先启动一个新的弹性豆茎应用程序 我生成 SSL 证书的私钥和自认证公
  • 了解非 SSL 登录表单的风险

    作为 Web 应用程序的用户 我倾向于只注册使用 SSL 安全登录表单的服务 作为一名开发人员 我知道风险在于非 SSL 表单以纯文本形式传输 不道德的个人可能会 嗅探 HTTP 流量并确定我的登录名和密码 但是 如果我在家中使用 DSL
  • 通过 Phonegap 使用 SSL 和证书连接到 Web 服务器

    这就是关于基于 JS 构建的 Phonegap Android 和 iOS 应用程序的全部内容 我们有一个服务器 方法如下 授权 登录 通过 返回certificate p12文件 PKCS 12 服务器也有方法 需要使用该证书进行授权 R
  • Telegram 向 webhook 发送重复的 POST JSON 请求

    我正在尝试开发用于电报的城市机器人 但遇到了问题 向机器人发送消息后 Telegram 向 webhook url 发送 2 个重复请求 Webhook 脚本运行两次并向用户发送两次响应 脚本 来自官方电报文档的 hellobot php
  • 当托管在 IIS 中时,如何通过代码配置 WCF 服务?

    我的 WCF 服务公开 https 和 http 端点 除了 SSL 之外 它们是相同的 它们映射到相同的代码 最终目的是外部用户通过https连接 内部用户使用http 在开发中这给我带来了一个问题 Cassini VS 中打包的开发 W
  • 通过 SSH 隧道访问 LDAP

    我通过 SSH 根访问 访问了客户办公室网络内的一台机器 我正在我的计算机上编写一个需要集成到 LDAP 的 PHP 应用程序 LDAP 服务器位于我客户网络的另一台服务器中 并且not可以从外部访问 但是我可以通过可以通过 SSH 连接的
  • 在 Python ssl 客户端/服务器的情况下自动输入密码短语

    我需要创建客户端 服务器应用程序以将文件从客户端发送到服务器 我使用简单的 ssl 套接字并使用证书进行身份验证 ms socket socket socket AF INET socket SOCK STREAM ssl sock ssl
  • .Net 和 Java 之间的 SSL 套接字,具有客户端身份验证

    我正在尝试在 NET 和 Java 之间创建 SSL 套接字服务器 客户端 在这种情况下 我的 SSL 套接字服务器将在 net 中运行 客户端在 Linux 下以 Java 运行 我的问题是在握手期间连接失败 特别是当服务器向客户端请求证
  • Heroku 自定义域 SSL 警告

    我正在尝试为我的 Heroku 部署应用程序设置 GoDaddy 购买的自定义域 我让它工作 以便 www com 正确转发到我的 herokuapp cedar 但是 1 我尝试获取裸地址没有成功 2 当我第一次尝试登录自定义域时 我得到
  • Jmeter关闭SSL证书

    如何在 Apache Jmeter 3 2 中禁用 SSL 证书验证 类似于邮递员 SSL证书验证开 关 中的开关 默认情况下 JMeter 不验证证书 如果您遇到 ssl 问题 这是另一个原因 根据您的评论 根本原因是缺少标头 添加这些标
  • Apache HTTPClient SSLPeerUnverifiedException

    使用 Apache HttpClient 4 2 1 使用从基于表单的登录示例复制的代码 http hc apache org httpcomponents client ga examples html http hc apache or
  • Spring 格式错误的“成员”属性值

    我正在创建一个必须连接到活动目录的应用程序 我实际上在处理更新群组成员时遇到了问题 团体名称是 GG 协作 AgenceXXX 这是我的GroupRepository抛出异常的类代码 public void addMemberToGroup
  • nginx、Meteor 和 Docker:代理 SSL 重定向在本地主机上不起作用

    我正在尝试将 nginx 设置为 Meteor 应用程序前面的代理服务器 这些将在 Docker 容器中运行 我想做的是将每个请求重定向为对 Meteor 服务器 在端口 8080 上 的 SSL 调用 然而 当我这样做时 所发生的一切是在
  • 在 Powershell 中绑定到不同的活动目录 ldap 实例

    我正在尝试使用一组特定的凭据进行绑定来连接到一些独立的 LDAP 存储 ADAM Active Directory 应用程序模式 但无法找到实现此目的的最佳方法 这是一个我希望能起作用的例子 ldapHost New Object Syst
  • 使用带有自签名证书的传输安全性的 BasicHttpBinding

    我有 WCF 服务 在一个 ServiceHost 内的不同端点使用 BasicHttpBinding 和 NetTcpBinding NetTcp 使用自签名证书 该证书是从文件加载的 一切都很好 直到我尝试实际使用 BasicHttpB
  • 通过 Active Directory LDAP 使用 Spring-Security 进行身份验证

    我无法使用真正的活动目录进行身份验证 让我更好地解释一下 我尝试使用 spring io 提出的示例进行身份验证 没有问题 内部服务启动没有任何问题 参考https spring io guides gs authenticating ld

随机推荐

  • 通过 SCEP 在 java 中生成 CSR 请求

    我正在尝试发送证书签名请求从一个Android设备到服务器 服务器与 iOS 设备正常工作并遵循SCEP程序 http softwarearchitectureandarchitects blogspot fr 2012 09 enroll
  • 如何快速从 webView 获取 URL

    我有一个问题 如何从webView 我执行以下代码并得到nil 我正在尝试的代码 override func viewWillAppear animated Bool super viewWillAppear true webView lo
  • 如何快速从 webView 获取 URL

    我有一个问题 如何从webView 我执行以下代码并得到nil 我正在尝试的代码 override func viewWillAppear animated Bool super viewWillAppear true webView lo
  • 处理多个图形适配器和显示器

    我正在尝试决定是否在我的应用程序中支持多个适配器 显示器 而不是将我的窗口锁定到主适配器和主显示器 我对此有很多疑问 因为我从未使用过具有多个显卡的系统 当存在多个显卡时 Windows 桌面如何表现 如果两张卡都运行自己的一组监视器 是否
  • 处理多个图形适配器和显示器

    我正在尝试决定是否在我的应用程序中支持多个适配器 显示器 而不是将我的窗口锁定到主适配器和主显示器 我对此有很多疑问 因为我从未使用过具有多个显卡的系统 当存在多个显卡时 Windows 桌面如何表现 如果两张卡都运行自己的一组监视器 是否
  • 将 float 重载到 numpy 数组

    我有一个函数 处理一维 numpy 数组 如下所示 def f arr arr asarray arr process data as numpy array return arr With asarray我允许使用列表调用该函数f 4 5
  • 将 float 重载到 numpy 数组

    我有一个函数 处理一维 numpy 数组 如下所示 def f arr arr asarray arr process data as numpy array return arr With asarray我允许使用列表调用该函数f 4 5
  • XML 序列化注释

    我遇到过这样的情况 我不想修改一个 xml 文件 XElement 类中的 AddAnnotation 函数提供了一个选项来添加仅内存数据 该数据未序列化且不是 XML 的一部分 我希望能够保存这些注释 例如 保存到另一个 xml 文件 然
  • XML 序列化注释

    我遇到过这样的情况 我不想修改一个 xml 文件 XElement 类中的 AddAnnotation 函数提供了一个选项来添加仅内存数据 该数据未序列化且不是 XML 的一部分 我希望能够保存这些注释 例如 保存到另一个 xml 文件 然
  • Seaborn FacetGrid PointPlot 添加 1 条网格线

    鉴于以下情况 import seaborn as sns attend sns load dataset attention sns set style whitegrid axes grid False axes edgecolor no
  • Seaborn FacetGrid PointPlot 添加 1 条网格线

    鉴于以下情况 import seaborn as sns attend sns load dataset attention sns set style whitegrid axes grid False axes edgecolor no
  • R:从 magrittr 到本机管道的转换以及函数的翻译

    请查看帖子末尾的 reprex 由于各种原因 我正在从 gt 过渡到本机管道 有时我会有点困难 我需要对几个功能进行一些评论 在第一种情况下 使用 gt 重写complete data 函数 我不明白为什么我的某些方法有效而另一种方法无效
  • R:从 magrittr 到本机管道的转换以及函数的翻译

    请查看帖子末尾的 reprex 由于各种原因 我正在从 gt 过渡到本机管道 有时我会有点困难 我需要对几个功能进行一些评论 在第一种情况下 使用 gt 重写complete data 函数 我不明白为什么我的某些方法有效而另一种方法无效
  • 使用 Oracle 进行数据库源控制

    我几个小时以来一直在寻找一种将数据库签入源代码管理的方法 我的第一个想法是一个用于计算数据库差异的程序 并要求所有开发人员将他们的更改作为新的差异脚本来实现 现在 我发现如果我可以将数据库转储到文件中 我可以将其签入并将其用作另一种类型的文
  • 使用 Oracle 进行数据库源控制

    我几个小时以来一直在寻找一种将数据库签入源代码管理的方法 我的第一个想法是一个用于计算数据库差异的程序 并要求所有开发人员将他们的更改作为新的差异脚本来实现 现在 我发现如果我可以将数据库转储到文件中 我可以将其签入并将其用作另一种类型的文
  • PHP 包含和图像不适用于重写的网址

    编辑短网址的 htaccess 文件后 现在我的页面已损坏 并且 php 包含的文件和图像无法工作 这是我在 public html 中的 htaccess RewriteRule car name car php name 1 L QSA
  • PHP 包含和图像不适用于重写的网址

    编辑短网址的 htaccess 文件后 现在我的页面已损坏 并且 php 包含的文件和图像无法工作 这是我在 public html 中的 htaccess RewriteRule car name car php name 1 L QSA
  • 使用扩展函数将字符串中的每个单词大写

    我想在 Kotlin 中创建一个扩展函数 将字符串中每个单词的第一个字母转换为大写 the quick brown fox to The Quick Brown Fox 我尝试使用capitalize 方法 只能通过将第一个字母大写Stri
  • 使用扩展函数将字符串中的每个单词大写

    我想在 Kotlin 中创建一个扩展函数 将字符串中每个单词的第一个字母转换为大写 the quick brown fox to The Quick Brown Fox 我尝试使用capitalize 方法 只能通过将第一个字母大写Stri
  • 如何使用UnboundID SDK通过SSL服务器证书连接到LDAP服务器?

    我手里有一个 SSL LDAP 服务器证书 我想用它通过 UnboundID SDK 连接到 LDAP 服务器 我不想使用 com unboundid util ssl TrustAllTrustManager 如下所示 使用 Unboun