Как экспортировать Let’s Encrypted сертификат с Windows Server 2012 R2
У себя на рабочем месте я использую бесплатные сертификаты от 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)
123456 | C:\Windows\system32> cd /d c:\acmec:\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
1234567 | 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: Computer account и нажимаю Finish, а затем OK
Console Root - Certificates (Local Computer) - 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.