
我們的 Exchange 伺服器已經使用內部簽署的憑證運行了一段時間。今天我購買了一個受信任的 SSL 憑證(wildcard)並安裝在伺服器上。
此憑證頒發給 *.example.no,當我https://mail.example.no/owa
從 Web 瀏覽器存取 Web 介面時,不會出現安全性異常。
現在,當我開啟 Outlook 時,我收到此憑證驗證錯誤。我已經嘗試了提供的所有標準解決方案,其中主要涉及將外部 url 設定為內部 url。
- 內部 FQDN:
mx.example.local
- 外部 FQDN:
mail.example.no
- 錯誤訊息:代理伺服器的安全性憑證有問題。安全性憑證上的名稱無效或與目標網站 mx.example.local 的名稱不符。 Outlook 無法連線到代理伺服器。 (錯誤代碼10)
我做了什麼:
Set-WebServicesVirtualDirectory –Identity ‘mx\EWS (Default Web Site)’ –ExternalUrl https://mail.example.no/ews/exchange.asmx
Set-WebServicesVirtualDirectory -Identity "mx\EWS (Default Web Site)" –InternalUrl https://mail.example.no/EWS/Exchange.asmx
Set-OABVirtualDirectory -Identity “mx\OAB (Default Web Site)” -InternalURL https://mail.example.no/OAB
Set-ActiveSyncVirtualDirectory -Identity “mx\Microsoft-Server-ActiveSync (Default Web Site)” -InternalURL https://mail.example.no/Microsoft-Server-Activesync
Set-ClientAccessServer -Identity mx -AutodiscoverServiceInternalUri https://mail.example.no/autodiscover/autodiscover.xml
結果:
[PS] C:\>Get-WebServicesVirtualDirectory | Select InternalUrl, BasicAuthentication, ExternalUrl, Identity | Format-List
InternalUrl : https://mail.example.no/ews/exchange.asmx
BasicAuthentication : True
ExternalUrl : https://mail.example.no/ews/exchange.asmx
Identity : mx\EWS (Default Web Site)
[PS] C:\>Get-OabVirtualDirectory | Select InternalUrl, ExternalUrl, Identity | Format-List
InternalUrl : https://mail.example.no/oab
ExternalUrl : https://mail.example.no/OAB
Identity : mx\OAB (Default Web Site)
[PS] C:\>Get-ActiveSyncVirtualDirectory | Select InternalUrl, ExternalUrl, Identity | Format-List
InternalUrl : https://mail.example.no/Microsoft-Server-ActiveSync
ExternalUrl : https://mail.example.no/Microsoft-Server-ActiveSync
Identity : mx\Microsoft-Server-ActiveSync (Default Web Site)
[PS] C:\>Get-ClientAccessServer | Select Fqdn, AutoDiscoverServiceInternalUri, Identity | Format-List
Fqdn : mx.example.local
AutoDiscoverServiceInternalUri : https://mail.example.no/autodiscover/autodiscover.xml
Identity : mx
之後我有
- 回收了 IIS 應用程式集區 MSExchangeAutoDiscoverAppPool (這並沒有讓訊息消失,所以我...)
- 重新啟動整個郵件伺服器(這也沒有使訊息消失,所以我......)
- 進入“控制台”->“郵件”->“電子郵件帳戶”,然後在我的帳戶上選擇“修復”(因為我正在發表這篇文章,您可能已經猜到這也沒有效果)
- 刷新用戶端電腦的 DNS(以防自動發現 URL 被忽略)
- 再次修復了電子郵件帳戶
- 嘗試編輯帳戶並將公共 FQDN、mail.example.no 作為伺服器位址
- 編輯:嘗試刪除並重新建立帳戶。刪除了整個郵件設定檔、%AppData%\Local\Outlook 和 %AppData%\Local\Outlook 資料夾。仍然沒有成功。
我現在沒有想法了...我在網路上訪問過的每個網站都表明我做了我剛才所做的事情,並且結果預計與我的結果一樣...
更新:我的一位使用者甚至無法從其工作站登入 Outlook。帳戶正常(手機和網頁用戶端上的郵件都可以),但 Outlook 不斷重複密碼提示,並且不會退出離線模式。
更新:在 Digicert 網站上進行 SSL 檢查,看看憑證是否安裝正常。伺服器通過了所有檢查,唯一警告我的是 SSL 3.0 協定的使用:協定支援 TLS 1.1、TLS 1.0、SSL 3.0。 SSL 3.0 是一個過時的協定版本,存在已知漏洞。
更新150709:
免責聲明:進行此更新時,沒有真正的內部 IP 位址受到損害
- 我在 DNS 中設定了一個新的正向查找區域,
mail.example.no
其中一個空白 (A) 記錄指向 192.168.1.1,即郵件伺服器的假設 IP 位址 - 在 192.168.1.in-adds.arpa 的反向查找區域中,我有名為 192.168.1.1 的 e (PTR) 記錄指向 mail.example.no
- 已下載適用於 Microsoft Exchange 的 DigiCert® 內部名稱工具
- 運行該工具,地址大部分是正確的,但 OWAVirtualDirectory ECPVirtualDirectory 仍然引用 mx.example.local 所以我將它們更改為 mail.example.no
查詢輸出看起來很有希望:
D:\>ipconfig /flushdns
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
D:\>nslookup mail.example.no
Server: dc1.example.local
Address: 192.168.1.2
Name: mail.example.no
Address: 192.168.1.1
D:\>nslookup 192.168.1.1
Server: dc.example.local
Address: 192.168.1.2
Name: mail.example.no
Address: 192.168.1.1
展望沒有.....
小測試:
- 前往帳戶設定 -> 更多設定 -> 連線 -> Exchange 代理程式設定。
- 將連線 URL 變更為
https://mail.example.no
- 將允許的主體名稱更改為
msstd:*.example.no
- 重新啟動 Outlook。現在不會彈出證書錯誤,但我注意到我沒有連接...
- 再次帳戶設置,這次我選擇自動修復
- 重新啟動 Outlook
- 現在,如果我返回 Exchange 代理程式設置,內部 URL 已返回...
答案1
來自第 3 方頒發者的憑證需要將您的內部 FQDN 作為使用者備用名稱,以便能夠與使用 Outlook 的 LAN 使用者嘗試存取的本機自動發現搭配使用,因為憑證位於您的 IIS 或 Exchange 上。
否則,系統將提示使用者“SSL 憑證名稱不符”,並且在某些情況下,系統將提示使用者一次又一次地輸入密碼。
答案2
我正在解決這個問題。我沒有足夠的積分來發表評論。
但我很好奇,您是否設定了 EXCH Outlook 提供者 CertPrincipalName?
Get-OutlookProvider
通配符憑證通常需要設定 EXPR 提供者。但我發現我可能還需要為 RPC 用戶端設定 EXCH 提供者。
Set-OutlookProvider EXCH -CertPrincipalName msstd:*.domain.com