启用LDAP over SSL

原文地址:https://gist.github.com/magnetikonline/0ccdabfec58eb1929c997d22e7341e45

实验环境
AD域名example.com
Windows Server 2008 R2 X64 (DC,计算机名dc.example.com )
OpenSSL (Linux或Windows,选择你熟悉的平台)

创建根证书

生成根证书,按提示输入参数

$ openssl genrsa -des3 -out ca.key 4096
$ openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

此时,应该生成两个文件,根证书ca.crt,根证书私钥ca.key
根证书

导入根证书到域控服务器

  • 移动根证书ca.crt到DC服务器上
  • 打开mmc, 添加证书管理单元,选择计算机账户,本地计算机
  • 在受信任的根证书颁发机构,导入根证书ca.crt
    导入根证书

为域控制器颁发证书

接下来使用根证书签发DC服务器证书 - dc.example.com
在DC上执行以下步骤

  • 创建一个新文件 request.inf 填入一下内容,CN=填入你的DC完整计算机名

    [Version]
    Signature="$Windows NT$"
    
    [NewRequest]
    Subject = "CN=dc.example.com"
    KeySpec = 1
    KeyLength = 1024
    Exportable = TRUE
    MachineKeySet = TRUE
    SMIME = FALSE
    PrivateKeyArchive = FALSE
    UserProtected = FALSE
    UseExistingKeySet = FALSE
    ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
    ProviderType = 12
    RequestType = PKCS10
    KeyUsage = 0xa0
    
    [EnhancedKeyUsageExtension]
    OID = 1.3.6.1.5.5.7.3.1 ; Server Authentication
  • 运行一下命令生成请求证书文件

    C:\> certreq -new request.inf client.csr

复制client.csr到OpenSSl环境下
- 创建一个文件 v3ext.txt 填入以下内容:

```
keyUsage=digitalSignature,keyEncipherment
extendedKeyUsage=serverAuth
subjectKeyIdentifier=hash
```

- 根据client.csr使用根证书签发DC的计算机证书 client.crt :

```sh
$ openssl x509 -req -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -extfile v3ext.txt -set_serial 01 -out client.crt
```

- 输入以下命令查看生成的dc.example.com证书:

```sh
$ openssl x509 -in client.crt -text
```

- 确保以下字段 X509v3 extensions 全部包含:
- X509v3 Key Usage: Digital Signature, Key Encipherment
- X509v3 Extended Key Usage: TLS Web Server Authentication
- X509v3 Subject Key Identifier

导入域控服务器证书

  • 复制client.crt 到dc服务器上,执行以下命令:

    C:\> certreq -accept client.crt
  • 打开证书管理控制台,在个人证书下,确保有以下内容:
    • 你有一个与该证书对应的私钥
    • 这个证书的目的如下:保护远程计算机的身份
    • 颁发给 dc.example.com

检查证书

重启AD服务加载证书

你可以选择重启计算机来加载LDAPS,或者用以下命令启用LDAPS:

  • 创建一个文件 ldap-renewservercert.txt 包含以下内容:

    dn:
    changetype: modify
    add: renewServerCertificate
    
    renewServerCertificate: 1
    -
    
  • 运行一下命令:

    C:\> ldifde -i -f ldap-renewservercert.txt

测试LDAPS是否生效

  • 从另外一台在域中的计算机,安装第一步生成的根证书 ca.crt 到受信任的根证书颁发机构
  • 打开工具:

    C:\> ldp.exe
  • 按下图连接到dc.example.com
    ldp

  • 返回正常信息,说明ok.
    ldp-ok

参考

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐