使用協力廠商憑證授權單位透過 SSL 啟用 LDAP
本文說明如何使用協力廠商憑證授權單位,透過安全通訊端層 (SSL) 啟用輕量型目錄存取通訊協定 (LDAP)。
原始 KB 編號: 321051
摘要
LDAP 是用來讀取和寫入 Active Directory。 預設情況下,LDAP 流量會以不安全的方式傳輸。 您可以使用 SSL/傳輸層安全性 (TLS) 技術,將 LDAP 流量設為機密且安全。 您可以透過 SSL (LDAPS) 啟用 LDAP,方法是依據本文中的指導方針,從 Microsoft 憑證授權單位 (CA) 或非 Microsoft CA 安裝格式正確的憑證。
沒有用於設定 LDAPS 的使用者介面。 在網域控制器上安裝有效的憑證,可讓 LDAP 服務接聽並自動接受 LDAP 和通用類別目錄流量的 SSL 連線。
LDAPS 憑證的需求
若要啟用 LDAPS,您必須安裝符合下列需求的憑證:
LDAPS 憑證位於本機電腦的個人憑證儲存 (以程式設計方式稱為電腦的 MY 憑證存放區)。
注意
如果 NT 目錄服務 (NTDS) 存放區中有憑證,DC 會改用 NTDS 存放區中的憑證。
符合憑證的私密金鑰會出現在本機電腦的存放區中,且已正確地與憑證相關聯。 私密金鑰 不得 啟用強式私密金鑰保護。
增強金鑰使用方式延伸模組包含伺服器驗證 (1.3.6.1.5.5.7.3.1) 物件識別碼 (也稱為 OID)。
例如,網域控制器的 Active Directory 完整功能變數名稱 (例如:dc01.contoso.com) 必須出現在下列其中一個位置:
- [主旨] 欄位中的 [一般名稱] (CN)。
- 主旨名稱延伸功能中的 DNS 項目。
憑證是由網域控制器和 LDAPS 用戶端信任的 CA 所發行。 建立信任的方式是將用戶端和伺服器設定為信任發行 CA 連結的根 CA。
使用 Schannel 密碼編譯服務提供者 (雲端解決方案提供者) 來產生金鑰。
建立憑證要求
任何建立有效 PKCS #10 要求的公用程式或應用程式都可以用來形成 SSL 憑證要求。 使用 Certreq 來形成要求。
Certreq.exe 需要文字指令檔案,才能為網域控制站產生適當的 X.509 憑證要求。 您可以使用慣用的 ASCII 文字編輯器來建立此檔案。 將檔案儲存為 .inf 檔案,並儲存至硬碟上的任何資料夾。
若要要求適合 LDAPS 的伺服器驗證憑證,請遵循下列步驟:
建立 .inf 檔案。 以下是可用來建立憑證要求的範例 .inf 檔案。
;----------------- request.inf -----------------
[版本]
Signature="$Windows NT$
[NewRequest]
Subject = “CN=<DC fqdn>” ; 將 取代為 DC 的 FQDN
KeySpec = 1
KeyLength = 1024
;可以是 1024、2048、4096、8192 或 16384。
;較大的金鑰大小較安全,但具有
;對效能有更大的影響。
可匯出 = 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 ;這適用于伺服器驗證
;-----------------------------------------------
將範例檔案剪下並貼到名為 Request.inf 的新文字檔案中。 在要求中提供網域控制站的完整 DNS 名稱。
某些協力廠商憑證授權單位可能需要 Subject 參數中的其他資訊。 這類資訊包括電子郵件地址 (E)、組織單位 (OU)、組織 (O)、地區或城市 (L)、州或省 (S) ,以及國家或地區 (C)。 您可以將此資訊附加至 Request.inf 檔案中 (CN) 主旨名稱。 例如:
Subject=“E=admin@contoso.com, CN=<DC fqdn>, OU=Servers, O=Contoso, L=Redmond, S=Washington, C=US.”
在命令提示字元中執行下列命令來建立要求檔案:
certreq -new request.inf request.req
系統會建立名為 Request.req 的新檔案。 它是 base64 編碼的要求檔案。
將要求提交至 CA。 您可以將要求提交至 Microsoft CA 或協力廠商 CA。
擷取發行的憑證,然後依照下列步驟,將憑證儲存為 Certnew.cer,並儲存在與要求檔案相同的資料夾中:
- 建立名為 Certnew.cer的新檔案。
- 在記事本中開啟檔案,將編碼的憑證貼到檔案中,然後儲存檔案。
注意
儲存的憑證必須編碼為 base64。 某些協力廠商 CA 會以電子郵件訊息中的 base64 編碼文字,將發行的憑證傳回給要求者。
在命令提示字元中執行下列命令,以接受發行的憑證:
certreq -accept certnew.cer
請遵循下列步驟,確認憑證已安裝在電腦的個人存放區中:
- 啟動 Microsoft Management Console (MMC)。
- 新增在本機電腦上管理憑證的 [憑證] 嵌入式管理單元。
- 展開 [憑證 (本機電腦)],再展開 [個人],然後按一下 [憑證]。 [個人] 存放區中應該有新的憑證。 在 [憑證內容] 對話方塊中,顯示的預定目的為 [伺服器驗證]。 此憑證會發行給電腦的完整主機名稱。
重新啟動網域控制站。
如需建立憑證要求的詳細資訊,請參閱下列進階憑證註冊和管理白皮書。 若要檢視這份白皮書,請參閱 進階憑證註冊和管理。
驗證 LDAPS 連線
安裝憑證之後,請遵循下列步驟來確認已啟用 LDAPS:
啟動 Active Directory 管理工具 (Ldp.exe)。
在 [連線] 功能表上,按一下 [連線])。
輸入要連線的網域控制器名稱。
輸入 636 作為連接埠號碼。
按一下 [確定]。
RootDSE 資訊應該會列印在右窗格中,表示連線成功。
可能的問題
啟動 TLS 擴充要求
LDAPS 通訊會透過連接埠 TCP 636 進行。 透過 TCP 3269 與通用類別目錄伺服器進行 LDAPS 通訊。 連線到連接埠 636 或 3269 時,會在交換任何 LDAP 流量之前交涉 SSL/TLS。
多個 SSL 憑證
Microsoft SSL 提供者 Schannel 會選取它在本機電腦存放區中找到的第一個有效憑證。 如果本機電腦存放區中有多個有效的憑證可用,Schannel 可能無法選取正確的憑證。
SP3 前 SSL 憑證快取問題
如果現有的 LDAPS 憑證被另一個憑證取代,可能是透過更新程式,或因為發行 CA 已變更,則必須重新開機伺服器,Schannel 才能使用新的憑證。
改善
本文中的原始建議是將憑證放入本機電腦的個人存放區。 雖然支援此選項,但您也可以在 Windows Server 2008 和更新版本的 Active Directory 網域服務 (AD DS) 中,將憑證儲放在 NTDS 服務的個人憑證存放區中。 如需如何將憑證新增至 NTDS 服務的個人憑證存放區的詳細資訊,請參閱 事件識別碼 1220 - 透過 SSL 的 LDAP。
AD DS 會在此存放區中,透過本機電腦的存放區來尋找憑證。 這可讓您更輕鬆地將 AD DS 設定為使用您想要使用的憑證。 這是因為本機電腦個人存放區中可能有多個憑證,而且可能很難預測選取哪一個憑證。
AD DS 會偵測新憑證何時卸除至其憑證存放區,然後觸發 SSL 憑證更新,而不需要重新開機 AD DS 或重新開機網域控制站。
名為 renewServerCertificate 的新 rootDse 作業可用來手動觸發 AD DS 以更新其 SSL 憑證,而不需要重新開機 AD DS 或重新開機網域控制器。 您可以使用 adsiedit.msc 更新此屬性,或使用 ldifde.exe 匯入 LDAP 目錄交換格式 (LDIF) 中的變更。 如需使用 LDIF 更新此屬性的詳細資訊,請參閱 renewServerCertificate。
最後,如果 Windows Server 2008 或更新版本域控制器在其存放區中找到多個憑證,則會隨機選擇其中一個憑證。
這些全都適用于 Windows Server 2008 AD DS 和 2008 Active Directory 輕量型目錄服務 (AD LDS)。 針對 AD LDS,請針對對應至 AD LDS 執行個體的服務,將憑證放入個人憑證存放區,而不是針對 NTDS 服務。