PKI/CA: Win2012 R2標準版 分散式部署AD域控環境的智慧卡登陸配置問題記錄_20180919_七俠鎮莫尛貝
概述:
PC1: DNS + IIS + AD, Win2012 R2標準版
PC2: AD證書服務, Win2012 R2標準版,
PC3: 智慧卡(飛天ePass3000)登陸測試客戶端.
1.PC1和PC2如果是克隆自同一個Win2012r2模板的虛擬機器, PC2在加入AD時會提示系統ID與AD一樣,導致無法加入域.
此時需要執行sysprep更新系統ID,如下圖:
2. PC2要先加入AD,再安裝AD證書服務.
3. PC2安裝AD證書服務時要以AD管理員身份執行,如下圖,輸入AD域管理員的賬號,再安裝AD證書服務.
注意: 必須是AD域管理員的賬號, PC2本機的管理員賬號是不行滴.
4. PC1因為未安裝AD證書服務,所以沒有企業PKI 入口.匯入第三方CA證書只能採用命令列方式:
certutil -dsPublish -f userca.cer NTAuthCA
gpupdate /force
檢視PC2的企業PKI->管理AD容器,發現證書已經匯入到 NTAuthCertificates裡了.
但實際上,PC2是有企業PKI入口的, 在PC2上通過圖形介面匯入CA證書應該也是可以的. 但mmc要以域使用者或域管理員許可權執行,不能以本機賬號許可權執行.
注意: 證書此時有紅叉,說明不受系統信任. 還需要把根證書和子CA證書匯入相應的信任儲存區才行.PC1和PC2都要匯入.
5.此時PC1上會自動申請一個域控制器證書.
注意這個證書的有效期是一年. 可以考慮簽發一個時間長一點的比如10年的域控制器證書替代他,省的將來證書更新麻煩.
(申請10年有效期域控證書後,客戶端登陸報錯. AD上手動申請一個KDC證書後,登陸正常. 原因暫時不清楚.)
6. 2018/9/26補充. 實現免KDC證書.
15:11 2018/9/26
第三方CA簽發域控證書要求:
1.根CA的主題要符合CA名稱,如: CN=CAname,DC=myad,DC=com (20180926補充確認: 不要求)
2.要有一個有效的CRL,可在DNS裡新增A記錄以解析crl中的域名.
3.包含證書模板名稱:DomainController
4.包含使用者備用名稱:DNS Name=ADname.myad.com (必須有,必須正確,否則匯入到AD後,AD會自動刪除這個證書!?)
5.最後得到的pfx,要通過openssl更換csp為:微軟SChannel -LMK型 (openssl v1.0以上版本才支援?) (20180926補充確認: 不要求?!)
#!/bin/bash
pfx=dc_myca_1234.pfx
pfx_schannel=dc_myca_1234_schannel.p12
openssl pkcs12 -in $pfx -clcerts -nokeys -out cert.cer
openssl pkcs12 -in $pfx -nocerts -out cert.key -nodes
openssl pkcs12 -name "RSA SChannel DC Cert" -export -inkey cert.key -in cert.cer -out $pfx_schannel -CSP 'Microsoft RSA SChannel Cryptographic Provider' -LMK
5.CA的根證書和crl要匯入AD和CA的相應儲存區.
6.CA的根證書要匯入到AD的組策略相應儲存區
7.CA的根證書要匯入NTAuthCA
certutil -dsPublish -f root.cer NTAuthCA
gpupdate /force
7. openssl簽發AD域控證書方法(20181019補充)
CONFIG=/root/openssl/dc_cert/openssl_dc.cnf
openssl ca -config ${CONFIG} -days 3650 -extensions sign_adcert_csr -out dc_openssl.cer -in csr.pem
openssl.cnf:
增加:
[ sign_adcert_csr ]
#1.3.6.1.4.1.311.20.2 = BMP:DomainController
1.3.6.1.4.1.311.20.2 = DER:1E200044006F006D00610069006E0043006F006E00740072006F006C006C00650072
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = digitalSignature,keyEncipherment
extendedKeyUsage = clientAuth,serverAuth
subjectAltName = @ad_guid_dnsname
[ ad_guid_dnsname ]
#otherName=1.3.6.1.4.1.311.25.1;DER:b64f74d2fc4c40608b560e802a1fc50e
DNS=AD2012.cnooc.com.cn
8. 待補充.