在Windows上啟用LDAPs


公司的環境比較特殊, 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 bits
Established connection to DC1.ABC.LOCAL.
Retrieving base DSA information...
Getting 1 entries:
以下省略
-----------

對於希望從Linux客戶端上通過ldapsearch命令查詢的需求, 需要改動的地方稍微有點多.

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

HOST DC1.ABC.LOCAL
PORT 636
TLS_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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM