php openldap支持ssl,基于OpenLDAP服务端和客户端的SSL/TLS的配置方法

OpenLDAP 是最常用的目录服务之一,它是一个由开源社区及志愿者开发和管理的一个开源项目,提供了目录服务的所有功能,包括目录搜索、身份认证、安全通道、过滤器等等。大多数的 Linux 发行版里面都带有 OpenLDAP 的安装包。OpenLDAP 服务默认使用非加密的 TCP/IP 协议来接收服务的请求,并将查询结果传回到客户端。由于大多数目录服务都是用于系统的安全认证部分比如:用户登录和身份验证,所以它也支持使用基于 SSL/TLS 的加密协议来保证数据传送的保密性和完整性。OpenLDAP 是使用 OpenSSL 来实现 SSL/TLS 加密通信的。

OpenSSL 是 SSL/TLS 加密算法及通信协议的开源实现包,实现了 SSLv2、SSLv3、TLSv1 及 TLSv1.2 的加密算法和通信协议,并提供 API 给第三方应用。第三方应用可以很容易的使用 OpenSSL 来将明文通信加密。OpenLDAP 和 OpenSSL 的互相配合是本文的主要内容,包括:OpenLDAP 服务端的 SSL/TLS 配置、OpenLDAP 客户端的 SSL/TLS 配置。

本文讲述的所有内容和命令适用于 Redhat Enterprise Linux 6.3,其他发行版本的 Linux 可能略有不同。

配置 OpenLDAP 使用 SSL/TLS 加密数据通信

SSL/TLS 加密原理简介

SSL/TLS 是基于 PKI 机制的加密方式,包括证书认证、密钥交换、非对称加密、对称加密。SSL/TLS 采用 CA 作为服务端和客户端都信赖的具有权威性的组织,证书的颁发和认证都依赖于 CA,并假定 CA 颁发的证书是可靠的、可信赖的,证书里面的内容是真实的、有效的,并可用于客户机和服务器进行安全的可靠的通信加密。

SSL/TLS 证书用来认证服务器和客户机双方的身份,并用于密钥交换时候的非对称加密。密钥交换完毕之后,就可以用这个密钥做通信数据的对称加密了,具体的加密算法是由客户机和服务器互相协商得来。服务器和客户机由于 SSL/TLS 库的不同以及用户的配置不同,双方支持的算法列表不完全相同,当双方做 SSL/TLS 握手的时候,就需要将自己支持的算法列表及优先顺序告知对方,一旦对方按照优先顺序找到了第一个支持的算法,那么协商完成,否则双方协商失败,SSL/TLS 连接断开。

如何配置 OpenLDAP 客户端和服务端的算法列表将在本文的后续内容中做重点介绍,用户可以通过控制这个列表来提高安全等级,或者降低安全等级来适应更多的算法。

OpenSSL 常用命令

OpenSSL 提供了为数众多的命令来帮助用户使用和查看 SSL/TLS 加密算法、查看证书、生成证书、测试 SSL/TLS 连接等等,以下是一些常用命令的介绍。

查看 OpenSSL 支持的所有算法

#openssl ciphers

查看 OpenSSL 是否支持某个算法,如 ECDH-ECDSA-AES128-GCM-SHA256

# openssl ciphers ECDH-ECDSA-AES128-GCM-SHA256

查看 OpenSSL 是否支持某个协议,如 TLSv1.2

# openssl ciphers TLSv1.2

查看 x509 证书

# openssl x509 -in cert.pem -text –noout

检测与 LDAP server 的连接

# openssl s_client -connect 9.181.137.155:636 -showcerts -state -CAfile /opt/ibm/director/vmi/data/sec/vmitruststore.pem

生成自签名的 CA 证书

#openssl req -x509 -newkey rsa:1024 -passout pass:123456 -days 3650 -keyout whhit.pem.key -out whhit.pem.cer -subj '/CN=whhit.me/OU=WeRun Club/O=whhit/L=Weihai/S=Shandong/C=CN'

生成私钥

#openssl genrsa -des3 -out whhit.pem.key -passout pass:123456 1024

使用指定的私钥生成一个 CSR (Certificate Signing Request)

#openssl req -new -key whhit.pem.key -passin pass:123456 -out whhit.pem.csr -subj '/CN=whhit.me/OU=WeRun Club/O=whhit/L=Weihai/S=Shandong/C=CN'

将加密的私钥导出为明文的私钥

#openssl rsa -in whhit.pem.key -passin pass:123456 -out whhit.pem.clear.key

使用指定的私钥签名生成证书

#openssl x509 -req -days 3650 -in whhit.pem.csr -signkey whhit.pem.clear.key -out whhit.pem.cer

将私钥和证书转化为 PKCS#12 格式的单个文件

#openssl pkcs12 -export -in whhit.pem.cer -inkey whhit.pem.key -passin pass:123456 -out whhit.p12 -passout pass:123456 -name tomcat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值