Продление сертификата exchange из powershell
Выведите полный список сертификатов, установленных в Exchange, и скопируйте отпечаток (ThumbPrint) того сертификата, который нужно продлить. Список сертификатов можно сохранить в txt файл:
Get-ExchangeCertificate | C:psCertThumbPrint.txt
Создадим новый запрос на продление сертификата, указав ThumbPrint того сертификата, который нужно продлить, например 12345678901234567890. Следующая команда сформирует файл запроса на продление SSL/TLS сертификата:
Get-ExchangeCertificate -Thumbprint 12345678901234567890| New-ExchangeCertificate -GenerateRequest -RequestFile “\msk-mail1sharerenew_cert.req” -PrivateKeyExportable:$true
После получение нового сертификата из CA, завершите запрос продления командой:
Import-ExchangeCertificate -FileName \msk-mail1sharecompany_new_sslcert.cer” -PrivateKeyExportable:$true
Теперь активируйте данный SSL сертификат для нужных служб Exchange:
Enable-ExchangeCertificate –Thumbprint 123123123123123123123123123 –Services “IIS, SMTP, POP, IMAP”
Осталось только перезапустить службы IIS на Exchange:
Restart-Service W3SVC
Установка ssl сертификата exchange 2021.
https://letsencrypt.org/
с помощью acme клиента получаем сертификат *.pfx (мы используем его в ручном режиме Manual и клиент автоматически не подтверждает доменное имя на который выпускается сертификат и оно должно проверяться снаружи, а также он не устанавливает сертификат автоматически).
Чуть подробнее про обновление (или выпуск) сертификата:
Запустим клиента.

Manage renewals (A)

Видим, что один (в нашем случае №2) сертификат due now, то есть готов к обновлению.
Выбираем его:

Выбираем наше действие (R):

Здесь нам говорят, что надо подтвердить домен методом dns-01 вручную и показывает, что нам надо сделать:
Authorizing sso(mail).yourdomain.ru using dns-01 validation (Manual)
А именно, добавить указанную запись TXT (на внешнем dns сервере): _acme-challenge.sso
В поле Text вставляем содержимое нашего черного окошка из поля content (я вставил без кавычек).

Выгружаем зону.
До нас изменения могут приходить долго, поэтому все равно его проверяем в acme, acme снаружи проверит это достаточно скоро.

Удаляем ранее созданную запись во внешнем DNS.
И нажимаем Enter

Как мы видим Renewals success
Посмотрим информацию про сертификат.

В папке у нас он тоже появился:
![]()
Устанавливаем его в локальное хранилище сервера Exchange (если нод несколько, то на все ноды):
![]()
Импортируем его себе в ЛИЧНОЕ ХРАНИЛИЩЕ СЕРТИФИКАТОВ СЕРВЕРА.

Здесь потребуется пароль от закрытого ключа.
Запустим клиента.

Manage renewals (A)
D: Show details for *all* renewals

Нас интересует поле .pfx password (и в последствии нужен будет Thumbprint, его тоже надо будет запомнить или записать).
Копируем пароль и вставляем в нужное нам окно.


После этого на сервере Exchange запускаем certmgr, и здесь у нас появляется наш сертификат и сертификат промежуточный издающего центра.

Далее, необходимо поставить его на сервер Exchange.
https://my-sertif.ru/ru-ru/powershell/module/exchange/enable-exchangecertificate?view=exchange-ps
https://gist.github.com/Kimanibob/5531884
Enable-ExchangeCertificate -Thumbprint 5113ae0233a72fccb75b1d0198628675333d010e -Services POP,IMAP,SMTP,IIS
(SMTP мы его не ставим, у нас тут самоподписный сертификат Exchange), поэтому вот так
Enable-ExchangeCertificate -Thumbprint 5113ae0233a72fccb75b1d0198628675333d010e -Services POP,IMAP,IIS
Thumbprint отпечаток, берем из wacs.exe, который открывали ранее:


Версия о том, что после этого обязательно надо «ребутнуть» IIS, пока остается не подтвержденной:

Далее, у нас должен появится наш новый сертификат вот здесь:

Можно посмотреть его свойства:


Старый сертификат можно удалить прям из графической оболочки.
Посмотреть действующий сертификат:
https://my-sertif.ru/ru-ru/powershell/module/exchange/get-exchangecertificate?view=exchange-ps
Get-ExchangeCertificate | Format-List

Get-ExchangeCertificate | select Thumbprint, Services, NotAfter, Subject, CertificateDomains

Get-ExchangeCertificate | select Thumbprint, Services, NotAfter, Subject, CertificateDomains | where {$_.Services -match «SMTP»} | fl

На вторую ноду перетаскиваем pfx, также импортируем в ЛОКАЛЬНОЕ ХРАНИЛИЩЕ СЕРТИФИКАТОВ НЕ ПОЛЬЗОВАТЕЛЯ, А СЕРВЕРА
И делаем тоже самое:
Enable-ExchangeCertificate -Thumbprint 5113ae0233a72fccb75b1d0198628675333d010e -Services POP,IMAP,SMTP,IIS
В итоге, видим сертификаты на обоих нодах. На этом все.
Выше рассмотрен вариант установки сертификата в готовом pfx формате.
А вот в случае если сертификат и закрытый ключ мы получаем отдельными файлами,
![]()
Мы попробовали просто импортировать сертификат *.crt, оснастка Эксченжда ECP его успешно приняла, но в списке сертификатов Эксченджа он не появился.

Оказалось, что для импорта этой пары в Эксчендж их необходимо упаковать в контейнер формата PKCS#12 (расширение .pfx).
Онлайн утилитам я бы такое доверять наверно не стоит, здесь лучше опять же использовать openssl. Конвертируем пару закрытый ключ сертификат в контейнер командой
opensslpkcs12 -export -out output-cert-name.pfx -inkey key-file-name.key -in input-cert-name.crt
на запрос пароля вводим новый пароль создаваемого контейнера.
Далее импортируем результат в Эксчендж :
Import-ExchangeCertificate -Server EX2021-01 -FileName «\Server-NameShare-Nameoutput-cert-name.pfx» -Password (ConvertTo-SecureString -String ‘Your-Password‘ -AsPlainText -Force)
если предварительно попробовать импортировать голый сертификат в консоль Эксча, то вывалится ошибка:
Не удается импортировать сертификат. Сертификат с отпечатком 12312312301178A455F7852D6519464123123123 уже существует.
однако сертификата с таким отпечатком в Эксче нет:
get-exchangecertificate -Thumbprint 12312312301178A455F7852D6519464123123123

На сервере ******* возникает характерная для Rpc ошибка: Сертификат с отпечатком 12312312301178A455F7852D6519464123123123 не найден.
Проблема исправляется: запуском mmc сертификаты компьютера, и ручным удалением ранее импортированного сертификата (того который без закрытого ключа). После этого контейнер успешно импортируется.


Для информации: https://www.petenetlive.com/KB/Article/0001528
Всем хорошей работы!!!
Sorry, the comment form is closed at this time.
