使用证书和LDAP验证的SSL ***

本文介绍如何通过配置Active Directory (AD) 和 Adaptive Security Appliance (ASA) 实现远程客户端的身份验证及证书颁发流程。具体包括ASA设备的基本配置、LDAP集成、证书申请步骤等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拓扑:

 

实验目的:

1 实验证书验证远程客户。

2 验证成功后,通过AD属性映射group-policy。

3 客户端使用在线申请证书。

本文以WIN 2003 作为域服务器和证书服务器,XP作为客户端。(win2008 做AD和CA,WIN 7做客户端,和本文基本相同,唯一要注意的是要使用HTTPS)

域和证书服务器的安装不在这里给出。下面是WIN 2003 的设置

 

 

客户端生气证书:

 

 

 

ASA配置;

hostname asa
domain-name wenlf136.net
interface Ethernet0/0
nameif inside
security-level 100
ip address 192.168.10.254 255.255.255.0
!
interface Ethernet0/1
nameif outside
security-level 0
ip address 192.168.20.254 255.255.255.0
!
clock timezone GMT 8
domain-name wenlf136.net
access-list out extended permit icmp any any
access-list out extended permit udp any host 192.168.10.10 eq domain
access-list out extended permit tcp any host 192.168.10.10 eq www
access-list out extended permit tcp any host 192.168.10.10 eq https
access-group out in interface outside
ldap attribute-map group-to-policy
map-name memberOf IETF-Radius-Class
map-value memberOf CN=group,OU=HROU,DC=wenlf136,DC=net sslgroup
dynamic-access-policy-record DfltAccessPolicy
aaa-server ldapgroup protocol ldap
aaa-server ldapgroup host 192.168.10.10
ldap-base-dn dc=wenlf136, dc=net
ldap-scope subtree
ldap-naming-attribute sAMAccountName
ldap-login-password *
ldap-login-dn cn=administrator, cn=users, dc=wenlf136, dc=net
server-type microsoft
ldap-attribute-map group-to-policy
crypto ca trustpoint CA
enrollment terminal
fqdn asa.wenlf136.net
subject-name cn=asa.wenlf136.net
keypair sslkey

ssl trust-point CA outside
ssl certificate-authentication interface outside port 443
web***
enable outside
group-policy sslgroup internal
group-policy sslgroup attributes
banner value Welcome
tunnel-group DefaultWEB***Group general-attributes
authorization-server-group ldapgroup
authorization-required
authorization-dn-attributes CN
tunnel-group DefaultWEB***Group web***-attributes
authentication certificate

 

给ASA 申请证书:

 

验证:

 

 

 

从 OpenLDAP 2.4 版本开始,默认配置方式从传统的 `slapd.conf` 转向了动态配置(**OLC: On-Line Configuration**),配置信息存储在 `slapd.d` 目录中。以下是针对动态配置(`slapd.d`)添加 SSL/TLS 支持的完整步骤: --- ### **1. 生成 SSL 证书** #### 1.1 创建证书目录(如果不存在) ```bash sudo mkdir -p /etc/ldap/ssl cd /etc/ldap/ssl ``` #### 1.2 生成自签名证书(测试用) ```bash # 生成根 CA 证书 sudo openssl req -x509 -newkey rsa:2048 -days 3650 -nodes \ -keyout ca.key -out ca.crt \ -subj "/CN=My LDAP CA/O=My Org/C=US" # 生成服务器证书请求(CSR) sudo openssl req -newkey rsa:2048 -nodes \ -keyout server.key -out server.csr \ -subj "/CN=ldap.example.com/O=My Org/C=US" # 用根 CA 签发服务器证书 sudo openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key \ -CAcreateserial -out server.crt -days 3650 ``` #### 1.3 设置证书权限 ```bash sudo chown -R openldap:openldap /etc/ldap/ssl sudo chmod 400 /etc/ldap/ssl/*.key sudo chmod 444 /etc/ldap/ssl/*.crt ``` --- ### **2. 配置 OpenLDAP 启用 SSL/TLS** #### 2.1 创建 LDIF 文件(`tls.ldif`) 创建文件 `/tmp/tls.ldif`,内容如下: ```ldif dn: cn=config changetype: modify add: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ldap/ssl/ca.crt - add: olcTLSCertificateFile olcTLSCertificateFile: /etc/ldap/ssl/server.crt - add: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ldap/ssl/server.key - add: olcTLSCipherSuite olcTLSCipherSuite: HIGH:!aNULL:!eNULL:!3DES - add: olcTLSProtocolMin olcTLSProtocolMin: 3.3 ``` #### 2.2 应用配置 ```bash sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/tls.ldif ``` #### 2.3 修改监听地址 创建文件 `/tmp/listen.ldif`,内容如下: ```ldif dn: cn=config changetype: modify replace: olcTLSCertificateFile olcTLSCertificateFile: /etc/ldap/ssl/server.crt - replace: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ldap/ssl/server.key - replace: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ldap/ssl/ca.crt - replace: olcSecurity olcSecurity: tls=1 ``` 应用配置: ```bash sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/listen.ldif ``` --- ### **3. 重启 OpenLDAP 服务** ```bash # Ubuntu/Debian sudo systemctl restart slapd # RHEL/CentOS sudo systemctl restart slapd ``` --- ### **4. 验证 SSL 配置** #### 4.1 使用 `ldapsearch` 测试加密连接 ```bash ldapsearch -x -H ldaps://localhost:636 -b "dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -W ``` #### 4.2 检查 SSL 握手 ```bash openssl s_client -connect localhost:636 -showcerts ``` #### 4.3 查看日志(调试用) ```bash journalctl -u slapd -f # 实时查看日志(Systemd系统) ``` --- ### **5. 客户端信任 CA 证书** #### 5.1 将 CA 证书复制到客户端 ```bash # Ubuntu/Debian sudo cp /etc/ldap/ssl/ca.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates # RHEL/CentOS sudo cp /etc/ldap/ssl/ca.crt /etc/pki/ca-trust/source/anchors/ sudo update-ca-trust ``` --- ### **6. 强制禁用明文 LDAP(可选)** 创建文件 `/tmp/disable_plain.ldif`: ```ldif dn: cn=config changetype: modify replace: olcSecurity olcSecurity: tls=1 ssf=256 ``` 应用配置: ```bash sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/disable_plain.ldif ``` --- ### **7. 常见问题处理** #### 错误:`TLS error -8172: Peer's certificate issuer is not recognized` - **原因**:客户端未信任 CA 证书。 - **解决**:确保客户端已正确安装 `ca.crt`。 #### 错误:`Permission denied` 访问证书 - **解决**: ```bash sudo chown openldap:openldap /etc/ldap/ssl/* sudo chmod 400 /etc/ldap/ssl/server.key ``` #### SELinux 限制(RHEL/CentOS) 允许 `slapd` 访问证书文件: ```bash sudo setsebool -P slapd_can_connect_ldap=true ``` --- ### **总结** 通过动态配置(`slapd.d`)启用 SSL/TLS 的步骤与传统 `slapd.conf` 不同,但核心逻辑一致。关键点: 1. 使用 `ldapmodify` 修改 `cn=config` 条目。 2. 确保证书路径权限正确。 3. 客户端必须信任 CA 证书
最新发布
05-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值