работа_с_сертификатами_exchange

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
работа_с_сертификатами_exchange [2024/04/11 13:53] jpработа_с_сертификатами_exchange [2025/03/17 13:47] (current) jp
Line 3: Line 3:
 **Установка сертификатов для IMAP** **Установка сертификатов для IMAP**
  
-:!: //В случае, если мы используем wildcard-сертификат, напрямую назначать его службе IMAP не требуется.// +:!: //В случае, если мы используем wildcard-сертификат, дополнительно назначать его отдельно - не требуется.// 
  
 Необходимо только указать хостнейм для подключения, сервер сам найдёт wildcard-сертификат.  Необходимо только указать хостнейм для подключения, сервер сам найдёт wildcard-сертификат. 
Line 15: Line 15:
 Get-ExchangeCertificate | select Thumbprint, Services, NotAfter, Subject, CertificateDomains | where {$_.Services -match "IMAP"} | fl Get-ExchangeCertificate | select Thumbprint, Services, NotAfter, Subject, CertificateDomains | where {$_.Services -match "IMAP"} | fl
 </code> </code>
 +
 +Если нам всё-таки необходимо назначить сертификат IMAP напрямую, сделать это можно следующим образом:
 +
 +   Enable-ExchangeCertificate -Thumbprint 9043B6B42D0BB935E4CB84F81111506012322A51 -Services 'imap'
 +
 +----
 +=== Назначение сертификата службам SMTP ===
 +
 +   Enable-ExchangeCertificate -Thumbprint 9043B6B42D0BB935E4CB84F81111506012322A51 -Services 'smtp'
  
 ---- ----
Line 60: Line 69:
 Если мы попробуем удалить старый сертификат после назначения нового через веб - мы получим сообщение, что сертификат нельзя удалять, т.к. он уже назначен коннектору отправки.  Если мы попробуем удалить старый сертификат после назначения нового через веб - мы получим сообщение, что сертификат нельзя удалять, т.к. он уже назначен коннектору отправки. 
  
 +;#;
 {{::certificate-removal-error.png?600|}} {{::certificate-removal-error.png?600|}}
 +;#;
  
 Это намекает нам на то, что сертификат необходимо поменять на коннекторе отправки тоже. Здесь есть нюанс, связанный с тем, что при простом выполнении команды //Get-SendConnector | fl//, мы не сможем получить thumbprint сертификата, а получим только имя. Если имена сертификатов совпадают, что часто бывает, когда продляем сертификат от одного и того же УЦ - потребуется сгенерировать имя нового сертификата специальным образом, как описано далее в этом разделе и установить его на коннектор.  Это намекает нам на то, что сертификат необходимо поменять на коннекторе отправки тоже. Здесь есть нюанс, связанный с тем, что при простом выполнении команды //Get-SendConnector | fl//, мы не сможем получить thumbprint сертификата, а получим только имя. Если имена сертификатов совпадают, что часто бывает, когда продляем сертификат от одного и того же УЦ - потребуется сгенерировать имя нового сертификата специальным образом, как описано далее в этом разделе и установить его на коннектор. 
Line 123: Line 134:
    TLS negotiation failed with error UnknownCredentials    TLS negotiation failed with error UnknownCredentials
  
-Если мы запустим на эджах команду //Get-ExchangeCertificate//, мы увидим, что новый сертификат не назначен сервису SMTP. Отметим thumbprint сертификата и назначим его ОДНИМ ИЗ сертификатов SMTP:+Если мы запустим на эджах команду //Get-ExchangeCertificate//, мы увидим, что новый сертификат (thumbprint которого будет и в логе) - не назначен сервису SMTP. Отметим thumbprint сертификата и назначим его ОДНИМ ИЗ сертификатов SMTP:
  
    Enable-ExchangeCertificate CERT_THUMBPRINT -Services SMTP    Enable-ExchangeCertificate CERT_THUMBPRINT -Services SMTP
  
-:!: //Однако, если мы используем один с серверами mailbox - wildcard сертификат - мы не хотим назначать его сертификатом по умолчанию, т.к. такие сертификаты на edge использовать нельзя и к тому же, сломает edge subscription. Поэтому, при выполнении командлета Enable-ExchangeCertificate - на запрос о замене сертификата следует ответить "n".// +:!: //Если мы используем один с серверами mailbox - wildcard сертификат - мы не хотим назначать его сертификатом по умолчанию, т.к. такие сертификаты на edge использовать нельзя и к тому же, сломает edge subscription. Поэтому, при выполнении командлета Enable-ExchangeCertificate - на запрос о замене сертификата следует ответить "n". В этом случае сервису SMTP будет назначено несколько сертификатов, это позволит работать TLS на Send-коннекторе и оновременно не сломает работу edge subscription.// 
  
 {{::not_replace_smtp_exch_edge.jpg|}} {{::not_replace_smtp_exch_edge.jpg|}}
 +
 +Два сертификата на SMTP:
 +
 +{{::exchange_smtp_two_certs.jpg|}}
 +
 +----
 +
 +=== Скрипт для определения используемого сертификата на SMTP-коннекторах на нескольких серверах ===
 +
 +<WRAP prewrap>
 +<code>
 +#Get all Exchange Servers in the environment
 +
 +$ExchangeServers = (Get-ExchangeServer |Where-Object {$_.ServerRole -like "mailbox"} )| Select-Object Name,DistinguishedName
 +
 +$Results = @()
 +
 +#Process Information
 +
 +ForEach($Server in $ExchangeServers){
 +
 +$TransportCert = (Get-ADObject -Identity $Server.DistinguishedName -Properties *).msExchServerInternalTLSCert
 +
 +$Cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
 +
 +$CertBlob = [System.Convert]::ToBase64String($TransportCert)
 +
 +$Cert.Import([Convert]::FromBase64String($CertBlob))
 +
 +$server | Add-Member -MemberType NoteProperty -Name DefaultTLSCertSubject -Value $Cert.Subject
 +
 +$server | Add-Member -MemberType NoteProperty -Name DefaultTLSCertFriendlyName -Value $Cert.FriendlyName
 +
 +$server | Add-Member -MemberType NoteProperty -Name DefaultTLSCertThumbprint -Value $Cert.Thumbprint
 +
 +$server | Add-Member -MemberType NoteProperty -Name DefaultTLSCertExpireDate -Value $Cert.NotAfter
 +
 +                             
 +
 +$Results += $Server
 +
 +}
 +
 +#Show result
 +$Results | Out-GridView
 +</code>
 +</WRAP>
 +
 +Автор: https://dirteam.com/bas/2020/06/24/field-notes-what-is-the-current-default-smtp-certificate-for-your-exchange-server-environment/
 {{tag>Exchange Microsoft Mail PowerShell Certificates}} {{tag>Exchange Microsoft Mail PowerShell Certificates}}
работа_с_сертификатами_exchange.1712843614.txt.gz · Last modified: 2024/04/11 13:53 by jp