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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
работа_с_сертификатами [2022/05/06 09:30] jpработа_с_сертификатами [2022/10/27 13:13] (current) jp
Line 1: Line 1:
 ===== Работа с сертификатами ===== ===== Работа с сертификатами =====
  
-=== Конвертация файла PFX (сертификат+ключ в формат, подходящий для Apache) === 
  
-<code> 
-sudo openssl pkcs12 -in domain.pfx -clcerts -nokeys -out domain.cer 
-sudo openssl pkcs12 -in domain.pfx -nocerts -nodes  -out domain.key 
-</code> 
- 
-=== Издание сертификатов SQL средствами центра сертификации === 
- 
-Издание сертификата через центр сертификации Windows: 
- 
- 1. Запрашиваем сертификат на SQL сервере через оснастку сертификатов на SQL-сервере. Подойдет шаблон "веб-сервер", или другой с Server Authentication (важно, чтобы в шаблоне была сделана пометка о возможности экспорта закрытого ключа). 
- 2. После получения сертификата - экспортируем его в PFX (не отмечаем экспорт всей цепочки и расширенных свойств).  
- 3. Конвертируем PFX в два файла (cer и pvk) при помощи конвертера от MS (''PVKConverter''):  
-        Пример команды:  
-<code> 
-c:\Program Files\Microsoft\PVKConverter>PVKConverter.exe -i sql04.pfx -o sql04.cer -d 111 -e 111 
-</code> 
- 4. Импортируем сертификат на сервер, где им шифруем, и еще на сервер, где собираемся расшифровывать SQL-запросом: 
- 
-<code> 
-CREATE CERTIFICATE sql04  
-FROM FILE = 'c:\cert\sql04.cer' 
-WITH PRIVATE KEY (FILE = 'c:\cert\sql04.pvk', 
-DECRYPTION BY PASSWORD = '111')''; 
-</code> 
- 
-Также, на сервере должен быть создан главный ключ базы данных (MASTERKEY), который шифрует остальные закрытые ключи. Он создается запросом:  
- 
- 
-<code> 
-CREATE MASTER KEY 
-ENCRYPTION BY PASSWORD = 'your _password'; 
-</code> 
- 
-=== Создание кастомного шаблона сертификата и публикация в веб-службах сертификации Windows === 
- 
-1. На сервере, где установлен центр сертификации открываем оснастку mmc "Шаблоны сертификатов" 
-2. Создаем новый шаблон на основе какого-то подходящего существующего шаблона. Например, "компьютер". 
-3. Выставляем нужные свойства шаблона - срок сертификации, длину ключа, возможность экспортировать закрытый ключ и пр.  
-4. В безопасности выставляем права на read, write, enroll для пользователя, который будет выпускать сертификаты через веб-службы (к примеру, для администраторов домена). 
- 
-{{::cert_sec.jpg?400|}} 
-  
-5. Во вкладке "имя субъекта" меняем "строится на основе данных Active Directory" на "Предоставляется в запросе". 
- 
-{{::cert_sn.jpg?400|}} 
- 
-6. Сохраняем созданный шаблон.  
-7. В оснастке mmc "Центр сертификации" в разделе "Шаблоны сертификатов" создаем новый щаблон сертификатов на основе только что созданного.  
-8. На всякий случай перезапускаем службу центра сертификации и IIS:  
- 
-<code> 
-Restart-Service -Name CertSvc 
-Restart-Service -Name W3SVC 
-</code> 
-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?400|}} 
- 
-3. После создания и публикации шаблона нужно открыть оснастку с сертификатами mmc (для учетной записи компьютера) на терминальном сервере и запросить новый сертификат из раздела "личное" 
-4. В запросе нужно выбрать шаблон, который мы создали и указать данные, как показано на скриншоте. Важно выбрать действующие DNS имена в поле "Служба DNS". В случае, если мы создаем сертификат для терминальных серверов, находящихся в режиме балансировки нагрузки - нужно создавать сертификат для общего имени, куда мы подключаемся (имени фермы). Также, если вводим информацию о стране, то код страны должен состоять из двух букв, иначе будет ошибка. На вкладке "Общие" вводим понятное имя сертификата.   
- 
-{{::cert_req.jpg?400|}} 
- 
-5. На сервере, где выполнялся запрос - сертификат будет уже установлен. Нужно, чтобы сертификат находился в папке "личное" учетной записи компьютера.  
-6. Для другого сервера, находящегося в ферме - нужно экспортировать созданный сертификат и установить его в папку "личное" учетной записи компьютера.  
-7. После установки сертификата его можно выбрать в свойствах конфигурации узла RDP.  
- 
-{{::cert_inst_rdp.jpg?400|}} 
- 
- 
-=== Генерация и установка сертификата для 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?400|}} 
- 
-9. После выдачи сертификата необходимо экспортировать его с закрытым ключом. При экспорте, на всякий случай, убираем опцию "Включить конфиденциальность сертификата" 
-10. Открываем оснастку управления RDP из диспетчера серверов на одном из серверов фермы, нажимаем "изменить свойства развёртвывания", переходим к пункту "сертификаты" и добавляем выгруженный сертификат. Ошибок быть не должно:  
- 
-{{::cert_ok_termfarm2019.jpg?400|}} 
- 
- 
-=== Установка приватного ключа для перегенерированного сертификата, который пришел без приватного ключа === 
- 
-В некоторых случаях может понадобиться назначить сертификату уже существующий приватный ключ (в другом сертификате). Такая необходимость может возникнуть, к примеру, если мы создали CSR, получили по нему сертификат, а потом сертификат пришлось перегенерировать из-за какой-нибудь ошибки без пересоздания CSR. В таком случае от УЦ мы получим сертификат без приватного ключа, для которого подходит уже созданный нами ранее приватный ключ. Чтобы назначить приватный ключ нужно:  
- 
-1. Импортировать новый полученный сертификат (для Exchange в личное хранилище учетной записи компьютера. При импорте сертификата в Exchange без приватного ключа сертификат не отобразится в консоли Exchange. 
-2. Выполнить команду для отпечатка нужного сертификата:  
-<code> 
-certutil -repairstore my "‎‎00 86 6f 32 37 aa ad 96 60 68 4b da cd 51 00 dd df" 
-</code> 
-3. Если все сделано верно и приватный ключ подходит к сертификату - в хранилище отобразится сертификат с приватным ключом и также этот сертификат появится в консоли Exchange. 
- 
-=== Сертификаты СБИС и ФСС === 
- 
-Для сертификатов СБИС и ФСС на терминальном сервере установлен криптопровайдер VIPNET CSP.  
-Папка с сертификатом должна быть добавлена в настройках VIPNET и сертификат должен открываться.  
-Для ФСС нужно установить этот сертификат в личное хранилище пользователя для того, чтобы он стал виден в 1С. Сделать это нужно из VIPNET.   
работа_с_сертификатами.1651829428.txt.gz · Last modified: 2022/05/06 09:30 by jp