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

This is an old revision of the document!


= Работа с сертификатами =

Конвертация файла PFX (сертификат+ключ в формат, подходящий для Apache)

sudo openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer
sudo openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain.key

Издание сертификатов SQL средствами центра сертификации

Издание сертификата через центр сертификации Windows:

1. Запрашиваем сертификат на SQL сервере через оснастку сертификатов на SQL-сервере. Подойдет шаблон "веб-сервер", или другой с Server Authentication (важно, чтобы в шаблоне была сделана пометка о возможности экспорта закрытого ключа).
2. После получения сертификата - экспортируем его в PFX (не отмечаем экспорт всей цепочки и расширенных свойств). 
3. Конвертируем PFX в два файла (cer и pvk) при помощи конвертера от MS (''PVKConverter''): 
      Пример команды: 
c:\Program Files\Microsoft\PVKConverter>PVKConverter.exe -i sql04.pfx -o sql04.cer -d 111 -e 111
4. Импортируем сертификат на сервер, где им шифруем, и еще на сервер, где собираемся расшифровывать SQL-запросом:
CREATE CERTIFICATE sql04 
FROM FILE = 'c:\cert\sql04.cer'
WITH PRIVATE KEY (FILE = 'c:\cert\sql04.pvk',
DECRYPTION BY PASSWORD = '111')'';

Также, на сервере должен быть создан главный ключ базы данных (MASTERKEY), который шифрует остальные закрытые ключи. Он создается запросом:

CREATE MASTER KEY
ENCRYPTION BY PASSWORD = 'your _password';

Создание кастомного шаблона сертификата и публикация в веб-службах сертификации Windows

1. На сервере, где установлен центр сертификации открываем оснастку mmc “Шаблоны сертификатов”. 2. Создаем новый шаблон на основе какого-то подходящего существующего шаблона. Например, “компьютер”. 3. Выставляем нужные свойства шаблона - срок сертификации, длину ключа, возможность экспортировать закрытый ключ и пр. 4. В безопасности выставляем права на read, write, enroll для пользователя, который будет выпускать сертификаты через веб-службы (к примеру, для администраторов домена).

cert_sec.jpg

5. Во вкладке “имя субъекта” меняем “строится на основе данных Active Directory” на “Предоставляется в запросе”.

cert_sn.jpg

6. Сохраняем созданный шаблон. 7. В оснастке mmc “Центр сертификации” в разделе “Шаблоны сертификатов” создаем новый щаблон сертификатов на основе только что созданного. 8. На всякий случай перезапускаем службу центра сертификации и IIS:

Restart-Service -Name CertSvc
Restart-Service -Name W3SVC

9. Заходим в веб-службы (http://dc01/certsrv/) делаем “расширенный запрос сертификата”. Новый шаблон должен появиться в списке.

Генерация и установка сертификата для служб RDP (Windows 2008 R2, без брокера подключений)

1. Для RDP нужно создать кастомный шаблон на основе шаблона “компьютер”. 2. В этом кастомном шаблоне на вкладке “расширения” нужно изменить опцию “политики применения”. Удаляем из нее проверку подлинности клиента и сервера и добавляем свою с именем “Remote Desktop Authentication” и следующим идентификатором: 1.3.6.1.4.1.311.54.1.2.

cert_rdp2.jpg

3. После создания и публикации шаблона нужно открыть оснастку с сертификатами mmc (для учетной записи компьютера) на терминальном сервере и запросить новый сертификат из раздела “личное”. 4. В запросе нужно выбрать шаблон, который мы создали и указать данные, как показано на скриншоте. Важно выбрать действующие DNS имена в поле “Служба DNS”. В случае, если мы создаем сертификат для терминальных серверов, находящихся в режиме балансировки нагрузки - нужно создавать сертификат для общего имени, куда мы подключаемся (имени фермы). Также, если вводим информацию о стране, то код страны должен состоять из двух букв, иначе будет ошибка. На вкладке “Общие” вводим понятное имя сертификата.

cert_req.jpg

5. На сервере, где выполнялся запрос - сертификат будет уже установлен. Нужно, чтобы сертификат находился в папке “личное” учетной записи компьютера. 6. Для другого сервера, находящегося в ферме - нужно экспортировать созданный сертификат и установить его в папку “личное” учетной записи компьютера. 7. После установки сертификата его можно выбрать в свойствах конфигурации узла RDP.

cert_inst_rdp.jpg

Генерация и установка сертификата для RD connection-broker фермы терминальных серверов (Windows Server 2019)

1. В центре сертификации, в оснастке “шаблоны сертификатов” - создать копию шаблона “Компьютер”.

Примечание: из старого шаблона, созданного ещё давно для Windows 2008 R2, с указанием в политиках применения Remote Desktop Authentication - установка не прошла с ошибкой о том, что сертификат не соответствует необходимым требованиям, поэтому лучше создать новый шаблон даже, если уже есть созданный.

2. На вкладке “Совместимость” созданного щаблона - установить нужный уровень совместимости и на вкладке “Общие” - срок действия. 3. На вкладке “Обработка запроса” - отметить опцию “Расширить экспортировать закрытый ключ”. 4. На вкладке “Безопасность” - установить права на чтение и заявку для группы “Контроллеры домена”. 5. На вкладке “Расширения” в кнопке “Политики применения” оставить только “Проверка подлинности сервера”. 6. На вкладке “Имя субъекта” в случае, если мы хотим самостоятельно отправлять его в запросе - отметить “Предоставляется в запросе”. ВАЖНО: если оставить значение по умолчанию, или указать строить имя субъекта на основании данных Active Directory, с указанием DNS-имени, то настройщик сертификатов RD Connection Broker напишет об успехе импорта, но сам сертификат не применит. 7. В оснастке управления центром сертификации создать выдаваемый шаблон сертификатов на основе созданного ранее шаблона. 8. На одном из терминальных серверов из оснастки сертификатов - сделать запрос на выдачу сертификата по созданному шаблону. В запросе указать нужные данные и что самое важное - все имена, к которым будут подключаться клиенты терминальных серверов, включая отдельные сервера и имя фермы, как показано на скриншоте: cert_request_termfarm2019.jpg 9. После выдачи сертификата необходимо экспортировать его с закрытым ключом. При экспорте, на всякий случай, убираем опцию “Включить конфиденциальность сертификата”. 10. Открываем оснастку управления RDP из диспетчера серверов на одном из серверов фермы, нажимаем “изменить свойства развёртвывания”, переходим к пункту “сертификаты” и добавляем выгруженный сертификат. Ошибок быть не должно: cert_OK_termfarm2019.jpg

Установка приватного ключа для перегенерированного сертификата, который пришел без приватного ключа

В некоторых случаях может понадобиться назначить сертификату уже существующий приватный ключ (в другом сертификате). Такая необходимость может возникнуть, к примеру, если мы создали CSR, получили по нему сертификат, а потом сертификат пришлось перегенерировать из-за какой-нибудь ошибки без пересоздания CSR. В таком случае от УЦ мы получим сертификат без приватного ключа, для которого подходит уже созданный нами ранее приватный ключ. Чтобы назначить приватный ключ нужно:

1. Импортировать новый полученный сертификат (для Exchange в личное хранилище учетной записи компьютера. При импорте сертификата в Exchange без приватного ключа сертификат не отобразится в консоли Exchange. 2. Выполнить команду для отпечатка нужного сертификата:

certutil -repairstore my "‎‎00 86 6f 32 37 aa ad 96 60 68 4b da cd 51 00 dd df"

3. Если все сделано верно и приватный ключ подходит к сертификату - в хранилище отобразится сертификат с приватным ключом и также этот сертификат появится в консоли Exchange.

Сертификаты СБИС и ФСС

Для сертификатов СБИС и ФСС на терминальном сервере установлен криптопровайдер VIPNET CSP. Папка с сертификатом должна быть добавлена в настройках VIPNET и сертификат должен открываться. Для ФСС нужно установить этот сертификат в личное хранилище пользователя для того, чтобы он стал виден в 1С. Сделать это нужно из VIPNET.

работа_с_сертификатами.1651829227.txt.gz · Last modified: 2022/05/06 09:27 by jp