У себя на рабочем месте я использую бесплатные сертификаты от Let’s Encrypted на Windows сервисах — это Remote Desktop Gateway и Exchange 2010.
- Нужно обновить сертификат для Remote Desktop Gateway
- Продлеваем сертификат Let’s Encrypt для Exchange 2010
Ну так вот я был вынужден в связи с текущими настройками два раза генерировать один и тот же сертификат на mail.ekzorchik.ru и если на RDG он просто импортируется, то для Exchange нужно было делать дополнительные действия по замене отпечатка. Т.е. получается, что у меня два сертификата на mail.ekzorchik.ru и за этим нужно следить чтобы вовремя продлять. Но это мелочи, Zabbix 5.0 выручает, главное помнить, что сертификатов два, а не один.
Мне же хотелось иметь возможность экспортировать сертификат как я проделываю на бухгалтерский компьютерах если перенастраиваю рабочее место и т.д. Но увы, тут сертификат от Let’s Encrypted имеет пароль на закрытую часть и версии которую я использую на Windows Server 2012 R2 Std для сервиса Remote Desktop Gateway нет возможности узнать какой пароль.
Шаг №1: Инициирую шаги по экспорту приватного сертификата:
on srv-ts01-gate (OC: Windows Server 2012 R2 Std, Role: RDG)
Login: ekzorchik, Group: Domain Admins
Win + X -> Command Prompt (Admin)
C:\Windows\system32> mmc - File - Add/Remove Snap-in…
Available snap-ins: выбираю Certificates и нажимаю Add,
- This snap-in will always manage certificates for: Computer accountи нажимаю- Finish, а затем- OK
Через правый клик мышью на сертификате (внешнем сертификате) нажимаю на нем и выбираю All Tasks - Export… и вот первая проблема, я не могу экспортировать приватный ключ (т.е. если бы возможность была, я бы в конечном итоге получил pfx файл) для данного сертификата:

Увы не могу. Исправляю текущее положение дел последующими шагами.
Шаг №2: Далее действия нужно проделать через утилиту wacs.exe (это клиент Win-ACME client) с целью отобразить информацию по установленном сертификату от Let’s Encrypted. У меня он уже установлен.
on srv-ts01-gate (OC: Windows Server 2012 R2 Std, Role: RDG)
Login: ekzorchik, Group: Domain Admins
Win + X -> Command Prompt (Admin)
C:\Windows\system32> cd /d c:\acme
c:\acme>wacs.exe
[INFO] A simple Windows ACMEv2 client (WACS)
[INFO] Software version 2.0.8.356 (RELEASE)
[INFO] IIS version 8.5
[INFO] Please report issues at https://github.com/PKISharp/win-acme
Т.к. у меня версия клиента 2.0.8.356, вроде как есть уже более новая, скачиваю ее с официального сайта (https://www.win-acme.com/): win-acme.v2.1.11.917.x64. на всякий случай я скопировал ее к себе дабы она всегда была под рукой.
Распаковываю архив на диск C:\acme.v2.1.11.917.x64, перехожу в него и запускаю утилиту wacs.exe
Please choose from the menu: q
c:\acme>cd %systemroot%\system32
C:\Windows\System32>cd /d c:\win-acme.v2.1.11.917.x64
c:\win-acme.v2.1.11.917.x64>
c:\win-acme.v2.1.11.917.x64>wacs.exe
A simple Windows ACMEv2 client (WACS)
Software version 2.1.11.917 (RELEASE, PLUGGABLE, 64-bit)
ACME server https://acme-v02.api.letsencrypt.org/
IIS version 8.5
Running with administrator credentials
Scheduled task points to different location for .exe and/or working directory
Scheduled task is disabled
Scheduled task exists but does not look healthy
Please report issues at https://github.com/win-acme/win-acme
N: Create certificate (default settings)
M: Create certificate (full options)
R: Run renewals (0 currently due)
A: Manage renewals (1 total)
O: More options...
Q: Quit
Please choose from the menu: нажимаю на клавиатуре клавишу «A«
Welcome to the renewal manager. Actions selected in the menu below will be
applied to the following list of renewals. You may filter the list to target
your action at a more specific set of renewals, or sort it to make it easier
to find what you're looking for.
1: [IISBinding] mail.ekzorchik.ru - renewed 11 times, due after 2020.12.10 17:17:47
D: Show details for the renewal
R: Run the renewal
U: Analyze duplicates for the renewal
C: Cancel the renewal
V: Revoke certificate(s) for the renewal
Q: Back
Choose an action or type numbers to select renewals: нажимаю на клавиатуре клавишу «D«
Details for renewal 1/1
Id:                  ICchgKiSy0u_puQUHATW1w
File:                ICchgKiSy0u_puQUHATW1w.renewal.json
FriendlyName:        [Auto] [IISBinding] mail.ekzorchik.ru
.pfx password:       ticbrUMvXnImtDt/NhsfGNQI+YiOsTzr93BBiv8CfUk=
Renewal due:         10.12.2020 17:17:47
Renewed:             11 times
Target        -----------------------------------------------------------------
- Plugin:           IIS - (Read site bindings from IIS)
- Sites:            1
- Hosts:            mail.ekzorchik.ru
Validation    -----------------------------------------------------------------
- Plugin:           Manual - (Create verification records manually
(auto-renew not possible))
CSR           -----------------------------------------------------------------
- Plugin:           RSA - (RSA key)
Store         -----------------------------------------------------------------
- Plugin:           CertificateStore - (Windows Certificate Store)
Installation  -----------------------------------------------------------------
- Plugin:           IIS - (Create or update https bindings in IIS)
History (most -----------------------------------------------------------------
1: 24.06.2020 6:00:13 - Error - Authorization failed
2: 24.06.2020 18:03:45 - Error - Authorization failed
3: 24.06.2020 18:04:24 - Error - Authorization failed
4: 24.06.2020 18:07:08 - Error - Authorization failed
5: 24.06.2020 18:25:54 - Success - Thumbprint FB1B80D5FA72EBD97C69E4D814B069FCA
D73A2EA 6: 18.07.2020 18:36:02 - Success - Thumbprint EDFD0FDDFC3CC8582FAE7A1601870B0A9
830FAAD 7: 23.07.2020 19:10:58 - Success - Thumbprint 782A1443C82D9CE59A61A9740ECE35B94
CF8CC48 8: 23.07.2020 19:21:49 - Success - Thumbprint 782A1443C82D9CE59A61A9740ECE35B94
CF8CC48 9: 16.10.2020 13:58:58 - Success - Thumbprint BCD9F2BA02C9F64C62450FCAFBAEB1423
8A5D66B 10: 16.10.2020 14:17:47 - Success - Thumbprint BCD9F2BA02C9F64C62450FCAFBAEB142
38A5D66B
Press <Enter> to continue
Choose an action or type numbers to select renewals: q
N: Create certificate (default settings)
M: Create certificate (full options)
R: Run renewals (0 currently due)
A: Manage renewals (1 total)
O: More options…
Q: Quit
Please choose from the menu: q
А вот и в строке .pfx password сам пароль: ticbrUMvXnImtDt/NhsfGNQI+YiOsTzr93BBiv8CfUk=
Шаг №3: Импортирую приватный ключ (pfx файл) к сертификатам, которые использует система Windows:
on srv-ts01-gate (OC: Windows Server 2012 R2 Std, Role: RDG)
Login: ekzorchik, Group: Domain Admins
перехожу в каталог "C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates", нажимаю на верхний файл ICchgKiSy0u_puQUHATW1w-cache.pfx

Запускается мастер импорта
- Store Location: выбираю Local Machine
нажимаю Next
- File name: C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates\ICchgKiSy0u_puQ (Оставляю по умолчанию)
нажимаю Next
и вот шаг где требуется пароль на экспорт приватного ключа:
- Password: указываю пароль который показал мне клиент (Windows ACMEv2 client) ticbrUMvXnImtDt/NhsfGNQI+YiOsTzr93BBiv8CfUk=
- Mark this key as exportable. This will allow you to back up or transport your keys at a later time: отмечаю галочкой
- Include all extended properties: отмечаю галочкой
и нажимаю Next

Далее указываю местонахождение сертификата для Windows, оставляю по дефолту и нажимаю Next

А затем нажимаю Finish.
Шаг №4: Теперь экспортирую сертификат в файловую систему Windows, к примеру, на логический диск каталога C:\Certs:
on srv-ts01-gate (OC: Windows Server 2012 R2 Std, Role: RDG)
Login: ekzorchik, Group: Domain Admins
Win + X -> Command Prompt (Admin)
C:\Windows\system32> mmc - File - Add/Remove Snap-in…
- Available snap-ins: выбираю Certificates и нажимаю Add,
- This snap-in will always manage certificates for: Current User и нажимаю Finish, а затем OK
Console Root - Certificates (Current Users) - Personal - Certificates — выделяю сертификат mail.ekzorchik.ru и через правый клик на нем перехожу All Tasks - Export и мне становятся доступны опции, как
- Yes, export the private key: на выходе будет pfx файл
- No, do not export the private key: на выходе будет cer файл
выбираю Yes, нажимаю Next, обязательно отмечаю
- Include all certificates in the certification path if possible
- Export all extended properties
и нажимаю Next, ставлю пароль
- Password: отмечаю
- Password: Aa1234567
- Confirm password: Aa1234567
На заметку: Пароль на закрытый ключ (pfx-файл) должен быть сложным и не быть легко угадываемым и простым.
и нажимаю Next
Далее указываю куда произвести экспорт:
File name: Browse - C:\Certs\ именую, как mail.ekzorchik.ru_do_14_01_2020 (Type: Personal Information Exchange (*.pfx)) и нажимаю Save затем нажимаю Next, Finish
повторяю, процедуру экспорта, но на этот раз выбираю "No, do not export the private key" и именую, как mail.ekzorchik.ru _do_14_01_2020.cer
Итого теперь раз сгенерировав сертификат, после через 90 дней его продлеваем (это если как у меня используется создание записи через проверку DNS), а после можно экспортировать его и перенести на почтовый сервер Exchange 2010. Получается один сертификат на два сервиса, как и должно быть, а не костыль с заменой отпечатка, как есть у меня в заметке.
На этом данная практическая заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.