为什么curl不能使用自签名证书连接到OpenDJ

为什么curl不能使用自签名证书连接到OpenDJ,curl,ssl,opendj,Curl,Ssl,Opendj,有人能告诉我为什么不使用LDAP和自签名证书吗 我有一个Opendj目录服务器在ldaps端口636上侦听,我正在尝试使用curl和Opendj的自签名证书从远程服务器连接到它: [root@myserver]#/usr/bin/curl-v-k--cacert/tmp/opendj.cerldaps://a.b.c.d/dc=example,dc=com objectClass: domain objectClass: top 这是我收到的错误信息: 即将连接()到a.b.c.d端口636

有人能告诉我为什么不使用LDAP和自签名证书吗

我有一个Opendj目录服务器在ldaps端口636上侦听,我正在尝试使用curl和Opendj的自签名证书从远程服务器连接到它:

[root@myserver]#/usr/bin/curl-v-k--cacert/tmp/opendj.cerldaps://a.b.c.d/dc=example,dc=com

objectClass: domain
objectClass: top
这是我收到的错误信息:

  • 即将连接()到a.b.c.d端口636(#0)
  • 正在尝试a.b.c.d。。。连接的
  • 连接到a.b.c.d(a.b.c.d)端口636(#0)
  • LDAP本地:LDAP供应商=OpenLDAP;LDAP版本=20423
  • LDAP本地:ldaps://a.b.c.d:636/dc=example,dc=com
  • LDAP本地:尝试建立加密连接
  • LDAP本地:LDAP\u simple\u bind\s无法联系LDAP服务器
  • 正在关闭连接#0 curl:(38)LDAP本地:LDAP\u simple\u bind\s无法联系LDAP服务器
[root@myserver]#/usr/bin/curl-V
curl 7.19.7(x86_64-redhat-linux-gnu)libcurl/7.19.7 NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2 协议:tftp ftp telnet dict ldap ldaps http文件https ftps scp sftp 特点:GSS协商IDN IPv6大文件NTLM SSL libz

请注意,它不能通过ldap工作:

[root@myserver]#/usr/bin/curl-vldap://a.b.c.d/dc=example,dc=com *即将连接()到a.b.c.d端口389(#0) *正在尝试a.b.c.d。。。有联系的 *连接到a.b.c.d(a.b.c.d)端口389(#0) *LDAP本地:LDAP供应商=OpenLDAP;LDAP版本=20423 *LDAP本地:ldap://a.b.c.d/dc=example,dc=com *LDAP本地:尝试建立明文连接 DN:dc=example,dc=com dc=示例,dc=com

objectClass: domain
objectClass: top
  • 正在关闭连接#0
谢谢,
S.E

最有可能的原因是,SSL层能够在客户端和服务器之间就通用密码套件达成一致。如果在服务器端或客户端启用SSL调试,则应该能够获得错误的更详细原因。 你可能想检查一下

问候,


Ludovic

大多数SSL工具都会尝试验证它们连接到的对等方的证书。基本上,他们会检查它是否是由他们已经信任的权威机构签署的,而且curl不喜欢其中一个证书。对于连接到计算机上的自签名证书,此验证通常会失败

Curl有一个命令行选项,可以提供帮助,
--不安全

试着这样做:

url --url scp://191.168.0.99/etc/config/wireless.conf -u <username>:<password> --pass -k --insecure -s > C:\wireless.conf

您需要替换URL、凭据和文件名,但参数本质上告诉curl跳过证书的对等验证,只接受证书并使用密码验证。这完全绕过了SSL设计提供的大部分安全性,但我相信它仍然会对传输进行加密。据我所知,唯一的其他选择是获取curl喜欢的证书并验证安装在源主机上的证书,或者以curl喜欢的形式查找并使用签署当前源证书的根证书。

Hi Ludovic,这是我在服务器端得到的:[07/Nov/2013:14:45:23+0000]DISCONNECT conn=1 reason=“I/O Error”msg=“读取来自客户端的请求时发生IO错误:javax.net.ssl.SSLException:收到致命警报:坏的\u证书”。请注意,我正在使用相同的证书从JBoss内部运行的OpenAM连接到相同的opendj,身份验证工作正常。