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 для пользователя, который будет выпускать сертификаты через веб-службы (к примеру, для администраторов домена).
5. Во вкладке “имя субъекта” меняем “строится на основе данных Active Directory” на “Предоставляется в запросе”.
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.
3. После создания и публикации шаблона нужно открыть оснастку с сертификатами mmc (для учетной записи компьютера) на терминальном сервере и запросить новый сертификат из раздела “личное”. 4. В запросе нужно выбрать шаблон, который мы создали и указать данные, как показано на скриншоте. Важно выбрать действующие DNS имена в поле “Служба DNS”. В случае, если мы создаем сертификат для терминальных серверов, находящихся в режиме балансировки нагрузки - нужно создавать сертификат для общего имени, куда мы подключаемся (имени фермы). Также, если вводим информацию о стране, то код страны должен состоять из двух букв, иначе будет ошибка. На вкладке “Общие” вводим понятное имя сертификата.
5. На сервере, где выполнялся запрос - сертификат будет уже установлен. Нужно, чтобы сертификат находился в папке “личное” учетной записи компьютера. 6. Для другого сервера, находящегося в ферме - нужно экспортировать созданный сертификат и установить его в папку “личное” учетной записи компьютера. 7. После установки сертификата его можно выбрать в свойствах конфигурации узла RDP.
Генерация и установка сертификата для 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.