建立 TLS 的憑證或憑證要求

 

適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上次修改主題的時間: 2011-11-04

本主題會說明如何使用 Exchange 管理命令介面中的 ExchangeCertificate 指令程式,建立 X.509 傳輸層安全性 (TLS) 憑證或憑證要求。

important重要事項:
在閱讀本主題之前,請確定您熟悉在 Microsoft Exchange Server 2007 中一般憑證的使用方式。請參閱 Exchange 2007 Server 中的憑證使用

在加密術語中,New-ExchangeCertificate 指令程式所產生的憑證及相關私密金鑰即為 TLS 金鑰。New-ExchangeCertificate 指令程式可讓您指定憑證的中繼資料,讓不同的服務可以使用相同的憑證及私密金鑰。在針對使用 TLS 的 Exchange 服務建立憑證或憑證要求之前,應先了解憑證用於 SSL 及 TLS 服務的中繼資料。在結果憑證中,此中繼資料被稱為「欄位」。

若要檢視指定電腦上的電腦憑證欄位,可以使用 Exchange 管理命令介面中的 Get-ExchangeCertificate 指令程式。或者,您也可以使用 Microsoft Management Console (MMC) 中的憑證管理員嵌入式管理單元。如需如何使用憑證管理員嵌入式管理單元的相關資訊,請參閱如何將憑證管理員新增至 Microsoft Management Console

了解 TLS 服務憑證所使用的欄位

如果您是使用 New-ExchangeCertificate 指令程式,從協力廠商或其他公開金鑰基礎結構 (PKI) 憑證授權單位 (CA) 來產生憑證要求,請務必確認該 CA 所需的憑證欄位及憑證格式為何。

本節說明最重要的憑證欄位,並提供產生憑證及憑證要求的一些最佳作法。

主旨名稱

TLS 憑證的 [主旨名稱] 是 DNS 感知服務所使用的欄位。[主旨名稱] 欄位會將憑證繫結至特定的伺服器或網域名稱。

主旨名稱是包含一或數個相對辨別名稱的 X.500 辨別名稱,亦稱為 RDN。下表列出常用來識別組織或伺服器實體的相對辨別名稱。

名稱 縮寫 類型 大小上限 頻率 最大值\憑證中的建議值\要求 主旨中的順序

國家/地區

C

ASCII

2

1\1

1

網域元件

DC

ASCII

255

很多

1

州或省

S

Unicode

128

1

2

位置

L

Unicode

128

1

3

組織

O

Unicode

64

1\1

4

組織單位

OU

Unicode

64

很多\很多

5

一般名稱

CN

Unicode

64

很多\1

6

「國家/地區」字碼為 ISO 3166-1 字碼。如需相關資訊,請參閱英文國家名稱及字碼元素 (英文)。

note附註:
本主題也提供協力廠商網站資訊,協助您找到需要的技術資訊。 URL 如有變更,恕不另行通知。

依慣例,「網域元件」與「國家/地區」互斥。最好是依「國家/地區」來參考名稱,或是依「網域名稱系統 (DNS)」名稱來參考名稱。另外請注意,「網域元件」的大小上限 (255 個字元) 是所有「網域元件」值的總數。

important重要事項:
雖然憑證可以有多個一般名稱欄位,但是有些服務是建立在僅限一個一般名稱的假設上。因此,多個一般名稱會導致交互操作上的問題。建議您所建立的憑證或憑證要求只包含一個一般名稱。

執行相對辨別名稱

New-ExchangeCertificate 指令程式中,主旨名稱會以單一參數來表示,由一連串以逗點分隔的名稱所組成。每個名稱都會以相對辨別名稱的縮寫來識別。例如,下列主旨名稱表示國家/地區 = US,組織 = Contoso Corp,一般名稱 = mail1.contoso.com

-SubjectName "C=US o=contoso corp, CN=mail1.contoso.com"

可以用來表示相同伺服器的其他主旨名稱範例如下:

-SubjectName  "O=contoso corp, CN=mail1.contoso.com"
-SubjectName "DC=contoso, DC=com, CN=mail1.contoso.com"
-SubjectName "DC= contoso, DC=com, O=contoso corp, CN=mail1.contoso.com"

如果您已登錄一個用來傳送 SMTP 郵件的 DNS 名稱,最好是使用網域元件慣例及 DNS 名稱來指定憑證名稱,例如:DC=contoso、DC=com、CN=mail1.contoso.com。

但是當您針對 CA 提供者產生憑證要求時,必須了解 CA 的「主旨名稱」欄位需求,以及您特有的 PKI 需求。在某些情況下,您必須使用「國家/地區」字碼 ("C")。若是這種情況,則必須向 X.500 註冊授權單位登錄您的相對辨別名稱。

國際主旨名稱

若是含有非 ASCII 字元的主旨名稱,您可以輸入 SubjectName 參數來作為辨別名稱,需用引號括住,如下所示:

-SubjectName "C=ES,O=Diversión de Bicicleta,CN=mail1。DiversiondeBicicleta.com"

主旨名稱及網域名稱

依慣例,一般名稱可包含網域全名 (FQDN)。雖然這種作法很普遍,我們也建議這麼做,但是您必須了卸載面二個問題。

首先,一般名稱欄位的大小上限為 64 個字元。這個字元數小於 FQDN 的大小上限。因此,若是超過 64 個字元的 FQDN,就必須將網域名稱放在「主旨替代名稱」中。DomainName 參數是對應至結果憑證之「主旨替代名稱」的參數。

第二,FQDN 受限於 ASCII 字元集的子集。然而,一般名稱 (CN) 可支援 Unicode。因此,您可以用類似 DNS 名稱,但非有效 DNS 名稱的 CN,來建立有效的憑證。如果 CN 中包含非 ASCII 字元,則在憑證 CN 中尋找 FQDN 的軟體不會傳回正確的結果。例如,假設您用來建立憑證的「主旨名稱」包含 CN=mail.mïcrosoft.com,系統會將該名稱當作 FQDN 而忽略,因為該名稱中包含 Unicode 字元 (ï 字元含有變音符號 (x00ef))。以肉眼來看,很容易將該 Unicode CN 誤看成 FQDN,因為含有變音符號的 ï 字元 (x00ef) 與 ASCII i (x0069) 之間的差異很小。Exchange 憑證工作不需要或強制主旨 CN 是有效的 FQDN。依預設,這表示該指令程式將伺服器的 FQDN 當作預設 CN 來包含。

憑證網域名稱

就 TLS 而言,憑證必須包含 DNS 名稱,因為 TLS 是 DNS 型通訊協定。用戶端會用其預期連接的 DNS 名稱,來驗證其正在連接之伺服器的 DNS 名稱。透過 HTTPS 來連接網站的 Web 瀏覽器,以及透過網際網路或內部網路來傳輸電子郵件的 SMTP 伺服器,就是這種情形。

單一伺服器可以支援多個 DNS 名稱的原因如下:

  • SMTP 伺服器可支援多個公認的網域
  • 用戶端可依伺服器名稱、網域名稱、FQDN 本機名稱或負載平衡名稱來存取電子郵件伺服器。

建立 TLS 連線之後,如果用戶端找到其所尋找的名稱,就會忽略憑證中的其他名稱。您可以新增多個網域及伺服器名稱至 TLS 憑證的「主旨替代名稱」欄位中。您可以使用 New-ExchangeCertificate 指令程式的 DomainName 參數,建立含有多個「主旨替代名稱」的憑證。DomainName 參數具有多重值,可接受多個名稱。

X.509 憑證可在「主旨替代名稱」(SubjectAltName) 憑證延伸中包含 0、1 或多個 DNS 名稱。SubjectAltName 延伸中的 DNS 名稱與 DNS 名稱的限制一模一樣。絕不能超過 255 個字元,且必須由 A-Z、a-z、0-9 及連字號 (-) 組成。

網域安全性功能的名稱比對邏輯

網域安全性功能的憑證名稱比對邏輯會在傳送郵件至該網域時,檢查收到憑證中的網域名稱是否符合該網域名稱。基於這個範例的目的,請考慮收件者網域的 FQDN (woodgrovebank.com)。憑證名稱比對邏輯會搜尋憑證中所有的 DNS 名稱,而且只要有一個 DNS 名稱相符,就會將憑證確認為所指定網域的相符憑證。

在這個範例中,憑證名稱比對邏輯會接受具有確切網域相符的憑證,例如 woodgrovebank.com。它也支援在憑證中使用萬用字元網域名稱,以便能夠接受 DNS 名稱為 *.woodgrovebank.com 的憑證作為相符憑證。如需萬用字元網域名稱的相關資訊,請參閱本主題稍後的<萬用字元網域名稱>。

憑證名稱比對邏輯也會深入一個節點來搜尋 DNS。因此,也會接受 mail1.woodgrovebank.com 作為 woodgrovebank.com 的相符者。然而,不接受深度超過兩個節點的 DNS 名稱。因此,例如,將不會接受 mail1.us.woodgrovebank.com 作為 woodgrovebank.com 的相符者。

如需 Exchange 如何選取憑證的相關資訊,請參閱 SMTP TLS 憑證選擇

網際網路 SMTP 網域名稱的最佳作法

當您針對透過網際網路來執行 SMTP TLS 的 Edge Transport Server 建立憑證或憑證要求時,應在要求中包含下列網域名稱組合:

  • 伺服器的完整網際網路網域名稱   這可能會和 Edge Transport Server 與 Hub Transport Server 之間所使用的內部 FQDN 不同,並應符合網際網路 (公用) DNS 伺服器上所公佈的 A 記錄。此名稱應輸入在 New-ExchangeCertificate 指令程式的 SubjectName 參數中當作 CN。
  • 組織的所有公認網域名稱   使用 New-ExchangeCertificate 指令程式的 IncludeAcceptedDomain 參數,填入結果憑證的「主旨替代名稱」。
  • 連接器的 FQDN (若上述項目中都沒有包含的話)   使用 New-ExchangeCertificate 指令程式的 DomainName 參數來填入結果憑證的「主旨替代名稱」。

Client Access Server 的網域名稱最佳作法

當您建立 Client Access Server 的憑證或憑證要求時,應在要求中包含下列網域名稱組合:

  • 伺服器的本機或 NetBIOS 名稱,例如:owa1
  • 組織的所有公認網域名稱,例如:contoso.com
  • 伺服器的網域全名,例如:owa1.contoso.com
  • 網域的自動探索網域名稱,例如:Autodiscover.contoso.com
  • 伺服器的負載平衡識別碼 (若您有使用的話),例如:owa.contoso.com

萬用字元網域名稱

萬用字元網域名稱是代表多重子網域的特殊類型網域名稱。萬用字元網域名稱可簡化憑證,因為單一萬用字元網域名稱即可代表該網域的所有子網域。您可以在 DNS 節點上用星號字元 ( * ) 來表示。例如,*.contoso.com 表示 contoso.comcontoso.com 的所有子網域。當您使用萬用字元來建立所有公認網域的憑證或憑證要求時,可大幅簡化該要求。

複製現有憑證

Exchange 2007 會在安裝期間建立一個自簽憑證,它會使用安裝時 Exchange 已知的所有伺服器及網域名稱。這些憑證的有效期為 12 個月。在某些情況下,如果「主旨」及「主旨替代名稱」可用於其他電腦,複製這些憑證是有意義的。請注意,只會複製憑證中繼資料,不會複製金鑰組。

若要在已安裝 Edge Transport server role 的電腦上執行下列指令程式,則必須使用該電腦的本機 Administrators 群組成員帳戶進行登入。

若要從現有的憑證複製新的憑證,您必須先執行下列命令,以識別網域目前的憑證:

Get-ExchangeCertificate -DomainName mail1.contoso.com

其中,mail1.contoso.com 是您要複製憑證的伺服器名稱或 FQDN。

輸出中所列示的第一個憑證是伺服器的預設 SMTP TLS 憑證。

若要複製憑證,請執行下列命令:

Get-ExchangeCertificate -Thumbprint c4248cd7065c87cb942d60f7293feb7d533a4afc | New-ExchangeCertificate

其中,Thumbprint 的值來自 Get-ExchangeCertificate 輸出中所列示的第一個憑證。

此命令會從指紋所識別的現有憑證中擷取名稱,並將其用在新的自簽憑證中。

產生協力廠商憑證服務的要求

如果您是使用 CA 來產生憑證,則必須依據 CA 的需求來提供憑證要求。

若要產生憑證要求,您可以使用 New-ExchangeCertificate 指令程式。若要產生憑證要求,請用 GenerateRequest 參數搭配 Path 參數來定義建立要求檔案的地方。結果檔案將會是 PKCS #10 要求檔 (.req)。PKCS #10 是 RFC 2314 (http://www.ietf.org/rfc/rfc2314.txt) 所指定的憑證要求語法標準。

note附註:
本主題也提供協力廠商網站資訊,協助您找到需要的技術資訊。 URL 如有變更,恕不另行通知。

下列範例會示範一些典型的憑證要求。

第一個範例是為 Contoso 的伺服器 mail1 產生憑證要求。「主旨名稱」的 CN 包含伺服器的 FQDN,而「主旨替代名稱」包含 Contoso 的所有公認網域。

New-ExchangeCertificate -GenerateRequest -SubjectName "c=us, o=contoso corp, cn=mail1.contoso.com" -IncludeAcceptedDomains -Path c:\certificates\mail1.contoso.com.req

第二個範例是為 Contoso 的伺服器 mail1 產生憑證要求。Contoso 在每部 Edge Transport Server (FQDN 為 mail.contoso.com) 上都有一個傳送連接器。

New-ExchangeCertificate -GenerateRequest -SubjectName "C=US, O=contoso corp, CN=mail1.contoso.com" -IncludeAcceptedDomains -DomainName mail.contoso.com -Path c:\certificates\mail1.contoso.com.req

第三個範例會從現有的 Contoso.com 憑證建立憑證要求。

Get-ExchangeCertificate -Thumbprint c4248cd7065c87cb942d60f7293feb7d533a4afc | New-ExchangeCertificate -GenerateRequest -SubjectName "C=us, O=contoso corp, CN=mail1.contoso.com" -Path c:\ certificates\mail1.contoso.com.req

最後一個範例會示範如何使用萬用字元,建立所有 Contoso.com 子網域的憑證要求。

New-ExchangeCertificate -GenerateRequest -SubjectName "C=us, O=contoso corp, CN=mail1.contoso.com" -DomainName *.contoso.com -Path c:\ certificates\mail1.contoso.com.req

如需相關範例,請參閱 Microsoft Exchange 小組網誌項目「心得:使用第三方 CA 產生憑證」(英文)。

note附註:
每個部落格的內容及其 URL 如有變更恕不另行通知。 每個部落格的內容係依「現況」提供,不為其承擔任何瑕疵責任擔保,且不授與任何權利。 使用內含的指令碼範例或程式碼係受限於 Microsoft 使用規定中所指定的條款。

安裝由憑證要求發出的憑證

將憑證要求傳送至 CA 之後,CA 會發出一個憑證,或是一連串憑證。無論是哪一種情況,都會以檔案的形式來傳遞憑證,您必須使用 Import-ExchangeCertificate 指令程式來加以安裝。

important重要事項:
請勿使用憑證管理員嵌入式管理單元在 Exchange 伺服器上匯入任何服務的憑證。使用憑證管理員嵌入式管理單元在 Exchange 伺服器上匯入憑證將會失敗。因此,TLS 或其他 Exchange 憑證服務將無法運作。

下列範例會示範如何匯入 SMTP TLS 的憑證

Import-ExchangeCertificate -Path c:\certificates\newcert.cer | Enable-ExchangeCertificate -Services SMTP

下一個範例會示範如何匯入憑證,以及為可支援郵局通訊協定,第 3 版 (POP3) 用戶端的 Client Access Server 啟用該憑證。

Import-ExchangeCertificate -Path c:\certificates\newcert.p7b | Enable-ExchangeCertificate -Services IIS,POP

相關資訊

如需目前運用 Exchange 特定網站之憑證授權單位的相關資訊,請參閱 Microsoft 知識庫文章 929395 Exchange 2007 與 Communications Server 2007 的整合通訊憑證廠商 (英文)。

如需密碼編譯及憑證技術和概念的相關資訊,請參閱下列出版品:

若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.