原文发表于cu:2016-07-04

参考文档:

  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

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解决。

可以使用"/usr/local/openldap-2.4.44/libexec/slapd"命令查看执行命令是否关联相应libraries,上面就是通过此方法定位故障点的:http://comments.gmane.org/gmane.network.openldap.technical/874

2. iptables

OpenLDAP with TLS/SSL默认使用tcp 636端口,提前在iptables放行。

三.配置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端口已可以访问数据库。

OpenLDAP配置TLS加密传输的更多相关文章

  1. MQTT TLS 加密传输

    MQTT TLS 加密传输 Mosquitto原生支持了TLS加密,TLS(传输层安全)是SSL(安全套接层)的新名称,生成证书后再配置一下MQTT代理,本文主要介绍Mqtt如何实现双向认证和单向认证 ...

  2. SSL/TLS加密传输与数字证书解读

    什么是ssl? secure socket layer(ssl)协议最初由netscape企业发展,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准 ...

  3. apache配置https加密传输

    环境:两台linux虚拟机和一台windows本机,一台充当要使用https传输的web服务器apache2.4.4,另一台CA服务器,window测试https配置. 1.CA服务器生成私有CA 1 ...

  4. linux下使用vsftp搭建FTP服务器:匿名登录,账号登录,SSL加密传输

    目录 一.关于FTP和VSFTP 二.ftp.sftp.vsftp.vsftpd的区别 三.项目一:搭建一台所有人都可以访问的通用FTP服务器 3.1 项目要求 3.2 项目思路分析 3.3 使用vs ...

  5. Centos6 yum安装openldap+phpldapadmin+TLS+双主配置

    原文地址:http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%8 ...

  6. 09-OpenLDAP加密传输配置

    OpenLDAP加密传输配置(CA服务器与openldap服务器异机) 阅读视图 环境准备 CA证书服务器搭建 OpenLDAP服务端与CA集成 OpenLDAP客户端配置 客户端测试验证 故障处理 ...

  7. 在SuperSocket中启用TLS/SSL传输层加密

    关键字: TLS, SSL, 传输层加密, 传输层安全, 证书使用, X509Certificate SuperSocket 支持传输层加密(TLS/SSL) SuperSocket 有自动的对TLS ...

  8. nginx配置ssl加密(单双向认证、部分https)

    nginx配置ssl加密(单双向认证.部分https) nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始 ...

  9. [转帖]nginx配置ssl加密(单/双向认证、部分https)

    nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627   nginx下配置ssl本来是很简单的,无论是去认证 ...

随机推荐

  1. Angular动态表单生成(一)

    好久不写博客了,手都生了,趁着最近老大让我研究动态表单生成的时机,撸一发博客~~ 开源项目比较 老大丢给我了两个比较不错的开源的动态表单生成工具,这两个项目在github上的star数量基本持平: h ...

  2. 非法字符:“\ufeff”

    解决方法 将编码格式UTF-8+BOM文件转为普通的UTF-8文件. 用Notepad++打开文件,将编码从UTF-8+BOM改为UTF-8

  3. 工具 | Axure基础操作 No.6

    这个是基础教程最后一篇,但是这仅仅是个开始,需要学的东西还有很多.坚持! 1.生成部分原型页面 不能单独生成子级的页面,会自动的勾选上父级.如果想单独的生成的话,就得把这个页面的级别提高,变成一级页面 ...

  4. PHP绘制验证码

    <?php        //使用PHP绘图技术,画出自己的验证码 $checkCode="";    for($i=0;$i<4;$i++){             ...

  5. #leetcode刷题之路47-全排列 II

    给定一个可包含重复数字的序列,返回所有不重复的全排列.示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]] 之前的https://www.cnblogs.com/ ...

  6. jquery file upload使用

    <!-- jquery file upload相关js --> <script src="/js/jquery-file-upload/js/jquery.ui.widge ...

  7. K8s集群安装和检查(经验分享)

    一.组件方式检查 1. Master节点: root>> kubectl get cs 2. Node 节点: 无  二.服务方式检查 1. Master 节点: root>> ...

  8. Tomcat 或JBOSS java.lang.ArrayIndexOutOfBoundsException: 8192原因及其解决方法

    2018-04-02 09:24:55 org.apache.catalina.connector.CoyoteAdapter service 严重: An exception or error oc ...

  9. underscore.js常用方法整理(慢慢完善)

    整理自Underscore.js (1.8.3) 中文文档,http://www.css88.com/doc/underscore/ 1. extend _.extend() 复制对象中的所有属性到目 ...

  10. cannot find module 'xxx' 解决办法

    先将node_module文件夹删掉 工程目录下输入命令:npm clean cache 查看package.json里有没有依赖项,有的话npm install 没有就npm install exp ...