java - 如何使用 StartTLS 获取 LDAP 服务器的 SSL 证书?

标签 java ssl ldap

我正在尝试将我的应用程序配置为访问一个 LDAP 服务器,该服务器使用 StartTLS 扩展监听端口 389 以确保安全。我想获取 SSL 证书的副本,以便我可以将其指定为已知证书(在 jssecacerts 文件中,因为我的应用程序是用 Java 编写的)。

如果它在端口 636 上运行,我会像这样使用 openssl:

openssl s_client -host myhost -port 636

并从输出中获取证书。

我首先尝试使用:

openssl s_client -host myhost -port 389 -starttls ...

但这不支持 LDAP 版本的 starttls。

然后,我尝试使用具有高调试级别的 ldapsearch:

ldapsearch -ZZ -h myhost -d99 ...

我可以看到在线数据包括证书,但它不是我知道如何使用的形式。

是否有通过命令行工具或短程序获取证书的简单方法? (我并不特别关心哪种语言,但 Java 是最理想的)

最佳答案

知名度全新改版InstallCert程序现在支持多种协议(protocol)的 STARTTLS,包括 LDAP。

像这样运行它:

java -jar installcert-usn-20131123.jar host_name:389

它会将证书保存在 JRE 文件树中的 jssecacerts keystore 文件中,以及当前目录中的 extracerts keystore 文件中。然后您可以使用 Java keytool将证书导出为其他格式。

欢迎您访问我的博客页面Yet another InstallCert for Java, now with STARTTLS support下载和说明。

关于java - 如何使用 StartTLS 获取 LDAP 服务器的 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18833524/

相关文章:

database - 我可以使用远程数据库服务器配置 ssl 吗?

google-app-engine - 无法将 SSL 证书分配给 Google App Engine 应用

database - 是否可以在不将 LDAP 密码存储为纯文本的情况下验证 LDAP 凭据

java - 如何解决 java.lang.NoClassDefFoundError?

java - MongoDB Spring 数据聚合平均值

java - 寻找一个轻量级的 java 兼容内存键值存储

active-directory - Nifi LDAP 授权 - 通过通配符搜索过滤器中的多个组

java - 如何配置 freebase java 客户端通过代理连接?

ssl - 如何创建仅包含私钥/公钥之一的 .pfx 文件

java - LDAP 错误代码 21 - "and ” 之间的差异