Dış etki alanlarına gönderilen iletiler ertelenmişse, TLS görüşmeler hatası noCredentials hatasıyla başarısız oldu
Özgün KB numarası: 4495258
Belirtiler
Dış etki alanlarına gönderilen e-posta iletileri şirket içinde sıraya Exchange Server (2016 veya 2013). Durumu kontrol etmek için aşağıdaki hata iletisini alırsınız:
421 4.4.1 Bağlantı zamanlandı." Alternatif ana bilgisayar için yük devretmeyi denendi, ancak bu başarısız oldu. Alternatif ana bilgisayar yok veya tüm alternatif ana bilgisayarlara teslim başarısız oldu.
Buna ek olarak, Bağlayıcı Gönder günlüklerine yapılan aşağıdaki hata girişi Aktarım Katmanı Güvenliği (TLS) görüşmelerinin başarısız olduğunu gösterir:
NOCredentials hatasıyla TLS görüşmeler başarısız oldu
Neden
Bu sorun, aşağıdaki koşullar doğruysa ortaya çıkar:
- Giden TLS için kullanılan sertifikada özel anahtar eksik.
- Özniteliği,
TLSCertificateNamesertifikanın Issuer ve SubjectName dizelerini kullanarak siz doldurmak için kullanın. Buna ek olarak, öznitelik, e-posta iletilerini dış etki alanlarına yönlendirmek için Bağlayıcı Gönder'in içinde giden<I>Issuer string<S>SubjectName stringTLS için kullanılır.
Çözüm
Bu sorunu çözmek için şu adımları izleyin:
E-posta iletilerini göndermeye yetkili olan Bağlayıcı Gönder'de günlüğe kaydetmeyi etkinleştirin. Bunu yapmak için, aşağıdaki PowerShell cmdlet'ini yönetici olarak çalıştırın:
Set-SendConnector "NameOfTheSendCconnector" -ProtocolLoggingLevel VerboseGiden TLS sırasında kullanılan sertifikayı tanımlamak için Bağlayıcı Gönder günlüklerini gözden geçirme. Örneğin, günlük girişi aşağıdakine benzer olabilir:
Tarih/Saat.BağlayıcıKimsi,Office 365'a Giden,SessionId,16.192.168.0.78:28252,172.16.38.36:25,,,Sertifika Tarih/Saat.BağlayıcıSı,Office 365'a Giden,OturumKimlik,17,192.168.0.78:28252,172.16.38.36:25,,CN=.xxx.xxx.xxx,Sertifika konusu Tarih/Time.ConnectorId,Office 365,SessionId, Giden 18.192.168.0.78:28252,172.16.38.36:25,,"CN=xxxxxx, OU=xxxxxx, O=xxxx, L=xxxx, S=xxxxx, C=xx",Sertifikayı alan adı
Tarih/Saat.BağlayıcıKimsi,Office 365'a Giden,SessionId,19.192.168.0.78:28252,172.16.38.36:25,,xxxxxxxxxxxxxxxxxxxxxxx,Sertifika seri numarası Tarih/Time.ConnectorId,Office 365'a Giden,SessionId,20,192.168.0.78:28252,172.16.38.36:25,,xxxxxxxxxxxxxxxx,Sertifika thumbprint
Tarih/Saat.BağlayıcıKimsi,Office 365'a Giden,SessionId,21.192.168.0.78:28252,172.16.38.36:25,,.xxxx.xxx.xx alternatif adları
Tarih/Saat.BağlayıcıKimsi,Office 365,SessionId,22,192.168.0.78:28252,172.167.38.36:25,*,TLS görüşmeler hatası noCredentials hatasıyla başarısız olduPrivateKey2. adımda tanımlanan sertifika için özelliğin durumunu kontrol edin. Bunu yapmak için aşağıdaki cmdlet'i çalıştırın:Get-ChildItem -Path Cert:\LocalMachine\My | where {$_.Thumbprint -like 'Certificate thumbprint identified in step 2'} | Select-Object -Property thumbprint,hasprivatekey-
- adımda tanımlanan sertifikayı, aşağıdaki cmdlet'i çalıştırarak kaldırın:
Get-ChildItem -Path Cert:\LocalMachine\My | where {$_.Thumbprint -like 'Certificate thumbprint identified in step 2'} | remove-itemNot
- adımda tanımlanan sertifikayı kaldırmadan önce, sunucuda çalışan ve başka herhangi bir uygulamada bu sertifikaya bağımlılığın Microsoft Exchange Server. Bir bağımlılık varsa, uygulamanın 5. adımda bahsedilen sertifikayı kullanarak başlamasını için uygulamada gerekli değişiklikleri yapın.
Normal içeri aktarma işlemi boyunca geçerli bir üçüncü taraf sertifikasını içeri aktarın ve sonra aşağıdaki cmdlet'i çalıştırarak Exchange Yönetim Kabuğu'dan sertifikanın durumunu kontrol edin.
Get-ExchangeCertificate | where {$_.rootca -eq 'third-party certificate'}Not
Exchange Yönetim Kabuğu her zaman geçerli bir özel anahtarı olan sertifikaları listeler.
Aşağıdaki cmdlet'i çalıştırarak, yeni alınan üçüncü taraf sertifikası üzerinde SMTP hizmetini etkinleştirin:
Enable-Exchangecertificate -thumbprint "Thumbprint of the new certificate" -services SMTPNot
Var olan sertifikayı yeni bir sertifika kullanarak değiştirmeniz istendiğinde, Hayır yazın.
Üçüncü taraf sertifikası zaten içe aktarılmışsa, Exchange Server üçüncü taraf sertifikası kullanılarak başlatılır.
Sırada bekleyen iletilere karşı yeniden deneme gerçekleştirmek için aşağıdaki cmdlet'i çalıştırın.
Get-queue -resultsize unlimited | where {$_.status -eq 'retry'} | retry-queue