博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Windows上启用LDAPs
阅读量:7305 次
发布时间:2019-06-30

本文共 2358 字,大约阅读时间需要 7 分钟。

公司的环境比较特殊, Windows server + Linux desktop, 所以我们希望在server端启用LDAP over SSL功能. 当中走了不少弯路, 网上文章也搜了一大堆, 千辛万苦终于搞定, 现在把过程记录下来.

域控制器: 基于Win2012R2, 搭建这个没什么难度所以过程省略. 

证书服务器: Windows CA --> Ubuntu Server + OpenSSL --> Ubuntu Desktop + gnoMint, Windows CA太庞大, OpenSSL待研究, gnoMint简单方便

客户机: Ubuntu

 

先说说那些走过的弯路: 根据微软的KB生成证书请求文件, 再去OpenSSl里生成CA, 然后私钥公钥签发等等, 再将生成的证书导入到域控, 可惜始终无法成功.

后来干脆放弃命令行的OpenSSL, 使用了具有图形界面的gonMint. 步骤其实也很简单, 首先Add an autosigned CA, 然后Add a new certificate signing request (所以无需按照微软KB的格式生成证书请求文件), 这样就生成了根证书和它为域控签发的证书, 分别导出为cer和pfx格式. 

将这两张证书导入域控, 其中根证书导入红色框, 域控证书导入蓝色框.

导入之后即可使用LDP.exe工具通过Port#636连接(注意: 连接时的服务器名必须和证书签发时的CN名一致)

ld = ldap_sslinit("DC1.ABC.LOCAL", 636, 1);Error 0 = ldap_set_option(hLdap, LDAP_OPT_PROTOCOL_VERSION, 3);Error 0 = ldap_connect(hLdap, NULL);Error 0 = ldap_get_option(hLdap,LDAP_OPT_SSL,(void*)&lv);Host supports SSL, SSL cipher strength = 256 bitsEstablished connection to DC1.ABC.LOCAL.Retrieving base DSA information...Getting 1 entries: 以下省略-----------

对于希望从Linux客户端上通过ldapsearch命令查询的需求, 需要改动的地方稍微有点多.

1. vi /etc/ldap/ldap.conf 加入以下行:

HOST DC1.ABC.LOCALPORT 636TLS_CACERT      /home/chen/ca.crt         ##指定根证书的路径

2. ldapsearch -x -LLL -D 'CN=administrator,CN=Users,DC=abc,DC=local' -W -H ldaps://DC1.ABC.LOCAL -b 'OU=vb-user,DC=abc,DC=local'

 

2015-8-13更新:

我们发现用gnoMint生成的证书, 所使用的签名算法是SHA1, 而且还无法更改. 但是这个算法即将被Google抛弃, 故在Chrome中依旧会显示为不安全连接. 所以我们准备使用openssl命令生成证书, 但是得到的证书死活无法成功使用LDAPs, 经过大半天的研究终于找到原因, 现记录如下:

左图是默认使用openssl导出的证书, 右边是修改了/etc/ssl/openssl.cnf参数的, 其中多了一项“增强型密钥用法”, 也就是微软KB文档中的 OID=1.3.6.1.5.5.7.3.1

 具体修改的地方是[ usr_cert ]下面的extendedKeyUsage属性 (注意字母K和U为大写),将其设置为1.3.6.1.5.5.7.3.1即可。

 

2015-8-14更新:

还有个简单的办法, 就是使用图形化界面的tinyCA, 但是不知道为何在Ubuntu下没有SHA-256的加密算法(https://github.com/pld-linux/tinyca/blob/master/tinyca-sha2.patch), CentOS下却有.

 

 

参考网站:

https://support.microsoft.com/en-us/kb/321051

http://virtuallyhyper.com/2013/06/enabling-ldaps-on-windows-2008-active-directory-server/

https://www.digicert.com/ssl-certificate-installation-microsoft-active-directory-ldap-2012.htm

https://forums.opensuse.org/showthread.php/401522-Performing-ldapsearch-over-TLS-SSL-against-Active-Directory

http://serverfault.com/questions/571910/how-to-add-extended-key-usage-string-when-generating-a-self-signed-certificate-u

https://www.openssl.org/docs/manmaster/apps/x509v3_config.html

转载于:https://www.cnblogs.com/IvanChen/p/4689230.html

你可能感兴趣的文章
springIOC、AOP的一些注解
查看>>
用为知笔记发博客
查看>>
Windows 8下完美使用Virtual PC 2007(virtual pc 2007 64 win8 兼容性)
查看>>
JavaScript中函数参数的值传递和引用传递
查看>>
面向对象高级编程(上)-- 第二周学习笔记(Boolan)
查看>>
主城地图1.0(4.7)
查看>>
其他数据类型转换成String
查看>>
SWAP_JOIN_INPUTS Oracle Hint(处理hash join强制大表(segment_size大)作为被驱动表)
查看>>
AI历史和哲学基础浅谈
查看>>
java项目显示红叉,程序却没有错误
查看>>
angularJS遇到的坑
查看>>
异常处理汇总-数据库系列
查看>>
Linux安装 jdk&maven
查看>>
msxfs.dll函数加载代码
查看>>
作业——10 分布式文件系统HDFS 练习
查看>>
前端知识汇总【转】
查看>>
Python With 用法
查看>>
Little C Loves 3 I
查看>>
javascript作用域、闭包、对象与原型链
查看>>
快速幂
查看>>