Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| работа_с_сертификатами_exchange [2024/04/11 13:59] – jp | работа_с_сертификатами_exchange [2026/05/20 10:00] (current) – jp | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| **Установка сертификатов для IMAP** | **Установка сертификатов для IMAP** | ||
| - | :!: //В случае, | + | :!: //В случае, |
| Необходимо только указать хостнейм для подключения, | Необходимо только указать хостнейм для подключения, | ||
| - | | + | |
| + | | ||
| + | | ||
| Действующий сертификат IMAP будет не виден в списке назначенных сертификатов для сервиса IMAP, если вывести его следующей командой: | Действующий сертификат IMAP будет не виден в списке назначенных сертификатов для сервиса IMAP, если вывести его следующей командой: | ||
| Line 15: | Line 17: | ||
| Get-ExchangeCertificate | select Thumbprint, Services, NotAfter, Subject, CertificateDomains | where {$_.Services -match " | Get-ExchangeCertificate | select Thumbprint, Services, NotAfter, Subject, CertificateDomains | where {$_.Services -match " | ||
| </ | </ | ||
| + | |||
| + | Если нам всё-таки необходимо назначить сертификат IMAP напрямую, | ||
| + | |||
| + | | ||
| + | |||
| + | ---- | ||
| + | === Назначение сертификата службам SMTP === | ||
| + | |||
| + | | ||
| ---- | ---- | ||
| Line 60: | Line 71: | ||
| Если мы попробуем удалить старый сертификат после назначения нового через веб - мы получим сообщение, | Если мы попробуем удалить старый сертификат после назначения нового через веб - мы получим сообщение, | ||
| + | ;#; | ||
| {{:: | {{:: | ||
| + | ;#; | ||
| Это намекает нам на то, что сертификат необходимо поменять на коннекторе отправки тоже. Здесь есть нюанс, связанный с тем, что при простом выполнении команды // | Это намекает нам на то, что сертификат необходимо поменять на коннекторе отправки тоже. Здесь есть нюанс, связанный с тем, что при простом выполнении команды // | ||
| Line 130: | Line 143: | ||
| {{:: | {{:: | ||
| + | |||
| + | Два сертификата на SMTP: | ||
| + | |||
| + | {{:: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | === Скрипт для определения используемого сертификата на SMTP-коннекторах на нескольких серверах === | ||
| + | |||
| + | <WRAP prewrap> | ||
| + | < | ||
| + | #Get all Exchange Servers in the environment | ||
| + | |||
| + | $ExchangeServers = (Get-ExchangeServer |Where-Object {$_.ServerRole -like " | ||
| + | |||
| + | $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]:: | ||
| + | |||
| + | $Cert.Import([Convert]:: | ||
| + | |||
| + | $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 | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Автор: https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | === Замена backend-сертификата === | ||
| + | |||
| + | В Exchange существует backend-сертификат, | ||
| + | |||
| + | Посмотреть этот сертификат можно с помощью команды: | ||
| + | |||
| + | < | ||
| + | Get-ExchangeCertificate | Where-Object {$_.FriendlyName -like " | ||
| + | </ | ||
| + | |||
| + | Если какие-то из свойств не отображаются в данной команде, | ||
| + | |||
| + | < | ||
| + | Get-ExchangeCertificate | Where-Object {$_.FriendlyName -like " | ||
| + | </ | ||
| + | |||
| + | Скопируем отпечаток старого backend-сертификата, | ||
| + | |||
| + | < | ||
| + | Get-ExchangeCertificate -Thumbprint " | ||
| + | </ | ||
| + | |||
| + | Теперь открываем MMC-оснастку с сертификатами локального компьютера, | ||
| + | |||
| + | Далее через //Exchange Admin Center// (//ECP//) назначаем сертификат всем сервисам: | ||
| + | |||
| + | Проверяем привязки в диспетчере //IIS//. Для сайта //Default Web Site// во всех привязках необходимо использовать белые сертификаты. | ||
| + | |||
| + | А вот в привязке //Exchange Back End// на порту 444 как раз необходимо установить только что сгенерированный новый сертификат. | ||
| + | |||
| + | Пример: | ||
| + | |||
| + | ;#; | ||
| + | {{: | ||
| + | ;#; | ||
| + | |||
| + | После замены сертификата делаем рестарт IIS | ||
| + | |||
| + | iisreset | ||
| + | :!: После замены backend-сертификата - не будет лишним проверить - не прописался ли даный сертификат для //IMAP//, если мы его используем. В некоторых случаях наблюдалась следующая картина: | ||
| + | В этом случае меняем его обратно командой: | ||
| + | |||
| + | Set-IMAPSettings -X509CertificateName mail.domain.com | ||
| + | |||
| {{tag> | {{tag> | ||