OpenLDAP配置TLS加密传输
原文发表于cu:2016-07-04
参考文档:
- 基于OpenSSL自建CA与颁发SSL证书:http://seanlook.com/2015/01/18/openssl-self-sign-ca/
- 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端口;





OpenLDAP配置TLS加密传输的更多相关文章
- MQTT TLS 加密传输
MQTT TLS 加密传输 Mosquitto原生支持了TLS加密,TLS(传输层安全)是SSL(安全套接层)的新名称,生成证书后再配置一下MQTT代理,本文主要介绍Mqtt如何实现双向认证和单向认证 ...
- SSL/TLS加密传输与数字证书解读
什么是ssl? secure socket layer(ssl)协议最初由netscape企业发展,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准 ...
- apache配置https加密传输
环境:两台linux虚拟机和一台windows本机,一台充当要使用https传输的web服务器apache2.4.4,另一台CA服务器,window测试https配置. 1.CA服务器生成私有CA 1 ...
- linux下使用vsftp搭建FTP服务器:匿名登录,账号登录,SSL加密传输
目录 一.关于FTP和VSFTP 二.ftp.sftp.vsftp.vsftpd的区别 三.项目一:搭建一台所有人都可以访问的通用FTP服务器 3.1 项目要求 3.2 项目思路分析 3.3 使用vs ...
- Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
原文地址:http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%8 ...
- 09-OpenLDAP加密传输配置
OpenLDAP加密传输配置(CA服务器与openldap服务器异机) 阅读视图 环境准备 CA证书服务器搭建 OpenLDAP服务端与CA集成 OpenLDAP客户端配置 客户端测试验证 故障处理 ...
- 在SuperSocket中启用TLS/SSL传输层加密
关键字: TLS, SSL, 传输层加密, 传输层安全, 证书使用, X509Certificate SuperSocket 支持传输层加密(TLS/SSL) SuperSocket 有自动的对TLS ...
- nginx配置ssl加密(单双向认证、部分https)
nginx配置ssl加密(单双向认证.部分https) nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始 ...
- [转帖]nginx配置ssl加密(单/双向认证、部分https)
nginx配置ssl加密(单/双向认证.部分https) https://segmentfault.com/a/1190000002866627 nginx下配置ssl本来是很简单的,无论是去认证 ...
随机推荐
- 使用yum命令时提示:Another app is currently holding the yum lock
yum正在使用,用kill命令杀死进程就可以了. 1.查看yum使用进程号 ps aux|grep yum 2.杀死进程 kill -9 进程号
- PHP介绍(PHP入门1)
BS架构和CS架构 B:Browser:浏览器 S:Server:服务器 C:Client:客户端 BS 浏览器和服务器的关系,通过浏览器来访问服务器,比如:百度.新浪... 优点:只要有浏览器就能访 ...
- 前端调用接口得到的数据跟postman跑出来的数据里数字部份不相等
昨天碰到这样一个场景,调用后端接口返回的数据发现所有数据都是正常的,只有一个商品ID的最后两位是错的,每一个商品都是,导致无法进行商品的上下架和删除, 经过查资料发现: 浏览器解析数字的坑,一旦超出一 ...
- ajax 动态载入html后不能执行其中的js解决方法
事件背景 有一个公用页面需要在多个页面调用,其中涉及到部分js已经写在了公用页面中,通过ajax加载该页面后无法执行其中的js. 解决思路 1. 采用附加一个iframe的方法去执行js,为我等代码洁 ...
- C++_构造函数与析构函数
构造函数与析构函数 OOP第二课 1 构造函数 1.1 构造函数具有一些特殊的性质 1.2 定义构造函数的一般形式 1.3 利用构造函数创建对象 2 成员初始化表 3 缺省参数的构造函数 4 重载构造 ...
- nginx详解反向代理、负载均衡、LNMP架构上线动态网站
简介 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.N ...
- iview中tree的事件运用
iview中的事件和方法如下: 案例说明: html代码 <Tree :data="data4" @on-check-change="choiceAll" ...
- 关于xib控件变成框框An internal error occurred
前段时间在进行系统适配的时候,由于在两个不同版本的Xcode之间进行了代码运行调试,导致回到老版本继续开发时xib里面所有的控件全部变成了蓝色的框框...真是哔了狗了 报错信息: an interna ...
- 菜鸟级渣渣 关于MAC系统开发java的吐槽
最开始买电脑的时候不知道为什么脑子一抽买了个苹果.因为不知道和谁聊的.后期服务器大部分都是linux系统,后期也要学linux系统.mac系统类似linux系统.然后就买了个mac,感觉凭借自己的聪明 ...
- Business Unit Helper
using System; using System.Linq; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Sy ...