OpenLDAP配置TLS加密傳輸

原文發表於cu2016-07-04html

參考文檔:算法

  1. 基於OpenSSL自建CA與頒發SSL證書:http://seanlook.com/2015/01/18/openssl-self-sign-ca/
  2. OpenLDAP with TLS:http://my.oschina.net/aiguozhe/blog/151554

一.環境

Server:基於CentOS-7-x86_64-1511 數據庫

Server IP: 172.18.12.203 vim

OpenLDAP:openldap-2.4.44已安裝安全

二.準備工做

1. 依賴包

#理論上只須要openssl與openssl-devel
yum install *openssl* -y

openldap編譯須要開啓"--with-tls"選項,可經過"./configure --help"查看相關說明,請參考:http://www.cnblogs.com/netonline/p/7486832.html服務器

openssl相關依賴包必定要安裝在openldap安裝以前,在openldap安裝以後再yum安裝openssl相關依賴包,運行ldaps命令時時報" 573d212b daemon: TLS not supported (ldaps://0.0.0.0:636/)"錯(以下圖),安裝openssl相關包以後從新編譯安裝openldap解決。 tcp

可使用"/usr/local/openldap-2.4.44/libexec/slapd"命令查看執行命令是否關聯相應libraries,上面就是經過此方法定位故障點的:http://comments.gmane.org/gmane.network.openldap.technical/874 ide

2. iptables

OpenLDAP with TLS/SSL默認使用tcp 636端口,提早在iptables放行。ui

三.配置TLS

在OpenLDAP的home目錄建立1個子目錄,後續操做均在此目錄進行
[root@localhost ~]# cd /usr/local/openldap-2.4.44
[root@localhost openldap-2.4.44]# mkdir -p certs
[root@localhost openldap-2.4.44]# cd certs/

1. CA中心操做(如已有CA證書則跳過)

生成CA根密鑰(1)

#帶上」-des3」參數時,建立的私鑰採起Triple DES算法加密,命令執行後會要求輸入密碼,這樣後續在調用此密鑰時都會要求輸入密碼,如 「openssl genrsa -des3 -out ca-key.pem 2048」,這裏爲了方便省略此參數
[root@localhost certs]# openssl genrsa -out cakey.pem 2048

#能夠查看生成的rsa 私鑰
[root@localhost certs]# openssl rsa -noout -text -in cakey.pem

#option選項,基於安全性考慮,建議修改根密鑰權限爲600或400
[root@localhost certs]# chmod 600 cakey.pem

生成CA根證書(2)

#利用req命令與CA根證書生成自簽署的根證書,證書有效期1年;
#生成證書時,上方紅色粗體字部分是要求輸入的信息,其中須要注意的是」Common Name」請填寫服務器域或IP
[root@localhost certs]# openssl req -new -x509 -days 365 -key cakey.pem -out ca.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Sichuan
Locality Name (eg, city) [Default City]:Chengdu
Organization Name (eg, company) [Default Company Ltd]:SYS
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:172.18.12.203
Email Address []:xxx@sys.com #能夠查看生成的根證書
[root@localhost certs]# openssl x509 -noout -text -in ca.crt

2. OpenLDAP服務器端操做

生成OpenLDAP服務器私鑰(3)

#同上,可帶"-des3"參數,同步驟(1)
[root@localhost certs]# openssl genrsa -out ldapkey.pem 2048

生成OpenLDAP服務器證書籤署請求文件(4)

#請求文件須要發給CA中心簽署生成證書,至關於公鑰;
#同步驟(2)會要求輸入一些信息,相對於步驟(2)額外的信息可忽略
[root@localhost certs]# openssl req -new -key ldapkey.pem -out ldapserver.csr

#查看請求文件
[root@localhost certs]# openssl req -noout -text -in ldapserver.csr

3. CA中心簽署證書

簽署證書的準備工做 (5)

#若是CA中心準備工做已經作好,此步可跳過。
[root@localhost certs]# cp /etc/pki/tls/openssl.cnf ./
[root@localhost certs]# mkdir -p newcerts
[root@localhost certs]# touch index.txt
[root@localhost certs]# echo "00" > serial

#修改第42行,證書生成配置文件的工做目錄」dir    =/etc/pki/CA」修改成當前配置文件工做的目錄,以下:
[root@localhost certs]# vim openssl.cnf
42 dir             = /usr/local/openldap-2.4.44/certs

簽署證書(6)

#須要將OpenLDAP服務器生成的csr請求文件發給CA中;
#生成證書會有兩次確認,」y」便可;
#若是從新簽署證書,須要先將index.txt的內容用index.txt.old還原
[root@localhost certs]# openssl ca -days 365 -cert ca.crt -keyfile cakey.pem -in ldapserver.csr -out ldapserver.crt -config openssl.cnf

4. 複製證書/密鑰到工做目錄(7)

#主要涉及CA中心的證書,CA中心爲OpenLDAP服務器簽署的證書與私鑰
[root@localhost certs]# mkdir -p /usr/local/openldap-2.4.44/etc/openldap/cacerts
[root@localhost certs]# cp ca.crt /usr/local/openldap-2.4.44/etc/openldap/cacerts
[root@localhost certs]# cp ldapserver.crt /usr/local/openldap-2.4.44/etc/openldap/
[root@localhost certs]# cp ldapkey.pem /usr/local/openldap-2.4.44/etc/openldap/

5. 修改OpenLDAP主配置文件slapd.conf(8)

#能夠在文件最後添加步驟(7)中證書/密鑰的工做路徑
[root@localhost certs]# cd /usr/local/openldap-2.4.44/etc/openldap/
[root@localhost openldap]# vim slapd.conf
TLSCACertificateFile /usr/local/openldap-2.4.44/etc/openldap/cacerts/ca.crt
TLSCertificateFile /usr/local/openldap-2.4.44/etc/openldap/ldapserver.crt
TLSCertificateKeyFile /usr/local/openldap-2.4.44/etc/openldap/ldapkey.pem

6. 啓動LDAPS

#」-d 256」是爲debug,後臺運行不須要;
[root@localhost ~]# /usr/local/openldap-2.4.44/libexec/slapd -h 「ldaps://0.0.0.0:636/」 -d 256

#或者:[root@localhost ~]# /usr/local/openldap-2.4.44/libexec/slapd -h 「ldaps:///」 -d 256

#或者同時啓動389與636端口:[root@localhost ~]# /usr/local/openldap-2.4.44/libexec/slapd -h 「ldap:/// ldaps:///」 -d 256

7. 啓動驗證

[root@localhost ~]# netstat –tunlp 

8. 經過ldapdmin驗證

1) 修改已經過389端口可訪問數據庫的屬性:數據庫名,右鍵-->Properties;加密

2) 修改389端口爲636端口;

3) 彈出窗口提示,選擇" View Certificate",點擊"Yes";

4) 能夠查看證書相關信息,選擇"安裝證書",一路默認"下一步";

5) 證書導入成功;

6) 經過636端口已能夠訪問數據庫。

相關文章
相關標籤/搜索