使用openssl生成自签名证书, 可以在linux下,也可以在windows下,命令格式稍微有不同。DC的主机名是 dc01.owl.local。
在这个案例中,我们没有使用Windows AD的证书服务体系,而是用openssl生成一个10年有效期的CA文件。 保存好最初生成的那个ca.key文件, 要是10年后你的公司还有你搭的这一套东西还在,你得续签这个CA证书,到时候用得上。
生成根证书
$ openssl genrsa -aes256 -out ca.key 4096
$ openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
#根据提示输入信息, 国家C,省ST,城市L,部门OU,公司O,CN名即CA的名称
安装根证书到DC
通过mmc.exe管理单元中的“证书”模块,把上步生成的ca.crt导入DC的“计算机账户”→ “受信任的根证书颁发机构”
创建DC的CSR
- 在DC上创建一个request.inf文件,这是用来生成csr的模板,填写以下内容
[Version]Signature="$Windows NT$"[NewRequest]Subject = "CN=dc01.owl.local"KeySpec = 1KeyLength = 2048Exportable = TRUEMachineKeySet = TRUESMIME = FALSEPrivateKeyArchive = FALSEUserProtected = FALSEUseExistingKeySet = FALSEProviderName = "Microsoft RSA SChannel Cryptographic Provider"ProviderType = 12RequestType = PKCS10KeyUsage = 0xa0[EnhancedKeyUsageExtension]OID = 1.3.6.1.5.5.7.3.1 ; Server Authentication
- 使用certreq.exe命令生成csr文件,然后把此文件复制到openssl所在的主机
C:\users\owl\> certreq -new request.inf dc01.csr
通过openssl颁发证书
- 在openssl主机上创建文件文件v3ext.txt,内容如下:
keyUsage=digitalSignature,keyEnciphermentextendedKeyUsage=serverAuthsubjectKeyIdentifier=hash
-
把ca.crt、dc01上生成的dc01.csr和v3ext.txt放在同目录下
根证书:ca.crt
证书请求:dc01.csr
ext扩展文件:v3ext.txt
-
使用openssl工具,结合上步中的三个文件,生成域控所需要的证书
openssl x509 \-req -days 3650 \-in client.csr -CA ca.crt -CAkey ca.key -extfile v3ext.txt \-set_serial 01 -out dc01.crt
- 验证证书
openssl x509 -in client.crt -text#确保v3ext.txt中指定的属性在证书中的 X509v3 extensions 中X509v3 Key Usage: Digital Signature, Key EnciphermentX509v3 Extended Key Usage: TLS Web Server AuthenticationX509v3 Subject Key Identifier
在DC上导入证书
把dc01.crt导入“证书(本地计算机)”→ “个人”→“证书”之下,该证书的预期目的应该是“服务器身份验证”
重启Domain Service服务
使用ldp.exe工具测试
如果你在另外一个域的计算机上做这个测试,需要在“连接”→“绑定”菜单下,先输入目标域的用户名和密码。
服务器的端口是636, 勾选SSL