Инструкция по созданию сертификатов для серверов, служб и оборудования. 1. Введение Достаточно часто при настройке того или иного сервера или службы требуется ключевая пара (открытый ключ – сертификат и закрытый ключ) для обеспечения защищенного канала связи между сервером и клиентом, либо для осуществления взаимной аутентификации клиента и сервера. В данной инструкции описаны действия администратора системы, для которой производится выпуск сертификата. 2. Установка сертификата для сервисов и серверов на платформе Windows Применительно к системам на платформе Windows ключевая пара может быть установлена несколькими способами, в частности в виде файла формата PFX12 (файл обмена личной информацией), либо с помощью утилиты certreq.exe. 2.1. Использование утилиты certreq.exe При использовании утилиты certreq.exe создание сертификата происходит в несколько этапов: a) Генерация закрытого ключа и создание запроса; используется команда certreq –new ReqInfFile ReqOutFile, здесь: - флаг «-new» - означает, что будет сгенерирован закрытый ключ и создан файл запроса; - параметр ReqInfFile – имя файла, содержащего в себе параметры для запроса (его содержимое различно для разных служб и будет рассмотрено ниже); - ReqOutFile – имя файла, в который будет помещен созданный запрос. b) Отправка запроса в центр сертификации; c) Генерация сертификата центром сертификации; d) Установка готового сертификата. производится командой certreq –accept CertFileName, здесь: - флаг «-accept» - означает, что будет произведена установка сертификата в локальное хранилище; - параметра «CertFileName» - имя файла сертификата. Windows сервер Типовой запрос для windows сервера: [Version] Signature= "$Windows NT$" [NewRequest] Subject= "CN=stalras01.severstal.severstalgroup.com;OU=Severstal company;O=JSC Severstal;L=Cherepovets;S=Vologda region;C=RU" KeySpec = 1 KeyLength = 2048 Exportable = FALSE MachineKeySet = TRUE SMIME = FALSE PrivateKeyArchive = FALSE UserProtected = FALSE UseExistingKeySet = FALSE ProviderName = "Microsoft RSA Schannel Cryptographic Provider" ProviderType = 12 RequestType = PKCS10 KeyUsage = 0xf8 [EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1 OID=1.3.6.1.5.5.7.3.2 [Extensions] 2.5.29.17 = "{text}" _continue_ = "DNS=stalras01.severstal.severstalgroup.com&" _continue_ = "DNS=stalras02.severstal.severstalgroup.com&" _continue_ = "DNS=stalras03.severstal.severstalgroup.com" В поле Subject необходимо внести данные своей организации. CN – имя пула LCS. Установленный сертификат потом устанавливается дефолтовым для сервера и в качестве сертификата для MTLS. Сервер WebDav, Web SSL Для создания сертификата, который будет использовать в качестве серверного для сервиса WebDav, требуется правильно заполнить файл с параметрами. Ниже приведен шаблон такого файла: [Version] Signature= "$Windows NT$" [NewRequest] Subject= "CN=mydc.testdc.ru;OU=Department;O=Organization;L=City;S=Sta te;C=RU" KeySpec = 1 KeyLength = 1024 Exportable = FALSE MachineKeySet = TRUE SMIME = FALSE PrivateKeyArchive = FALSE UserProtected = FALSE UseExistingKeySet = FALSE ProviderName = "Microsoft RSA Schannel Cryptographic Provider" ProviderType = 12 RequestType = PKCS10 KeyUsage = 0xf8 [EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1 В поле Subject необходимо внести данные своей организации. CN – имя машинысервера, на которой запущен WebDav. Установленный сертификат прописывается в IIS согласно документации. 3. Запрос сертификата для Cisco PIX Firewall Сертификат для CISCO PIX можно получить либо в виде файла, либо по протоколу SCEP, когда PIX запрашивает и получает сертификат в автоматическом режиме. Для реализации этой возможности необходимо произвести соответствующие настройки. Так как эти настройки отличаются в разных версиях PIX OS, то в каждом случае следует обращаться к актуальной документации. Ниже приведены команды, позволяющие сконфигурировать Cisco PIX c версией OS 6.3. a) Установка имени хоста для PIX Firewall hostname новое_имя b) Установка доменного име PIX Firewall domain-name новое_имя c) Генерация ключевой пары ca generate rsa key размер_ключа d) Просмотр ключевой пары show ca mypubkey rsa e) Регистрация данных УЦ ca identity имя_УЦ IP-адрес_УЦ f) Конфигурация параметров соединения PIX Firewall и УЦ ca configure имя_УЦ ca | ra время_ожидания_ответа(мин) количество_повторов [crloptional] здесь: время_ожидания_ответа(мин) – время (в минутах), через которое будет повторен запрос, при неудачной попытке; количество_повторов – общее количество повторов; crloptional – если указан этот ключ, то PIX Firewall будет принимать предъявляемые сертификаты, даже если их невозможно будет проверить на отзыв. g) Авторизация УЦ для получения его сертификата и открытого ключа ca authenticate имя_УЦ [отпечаток_сертификата_УЦ] h) Запрос на подпись сертификатов для всех сгенерированных ключевых пар ca enroll имя_УЦ пароль_на_отзыв [serial] [ipaddress] Ключевые слова serial ipaddress указываются в том случае, когда необходимо включить в сертификат серийный номер и IP-адрес PIX Firewall. i) Проверка того, что сертификат был запрошен корректно show ca certificate 4. Установка сертификата для сервисов и серверов на платформе *NIX Для систем на платформе *NIX секретный ключ и запрос на сертификат обычно формируется с помощью утилиты openssl. Для этого необходимо выполнить следующие шаги: a) Создание каталога хранения секретного ключа и установка на него необходимых прав доступа: # mkdir <путь>certs # chmod 600 certs/ b) Запуск openssl: /usr/local/ssl/bin/openssl c) Генерация закрытого ключа genrsa -des3 1024 -out <путь>/certs/host.key d) Генерация файла запроса: req -new -key <путь>/certs/host.key –out <путь>/certs/host.req Здесь необходимо будет указать ряд параметров будущего сертификата. e) Отправка запроса в центр сертификации; f) Генерация сертификата центром сертификации; g) Установка готового сертификата производится путем копирования полученного файла в нужный каталог. Шаблон файла запроса [ req ] default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name req_extensions = v3_req [ req_distinguished_name ] countryName = RU countryName_default = UK stateOrProvinceName = Vologda rgn. stateOrProvinceName_default = Wales localityName = Cherepovets localityName_default = Cardiff organizationName = Infocom organizationName_default = Example UK commonName = <ОСНОВНОЙ FQDN> commonName_default = one.test.app.example.net commonName_max = 64 [ v3_req ] basicConstraints keyUsage subjectAltName = CA:FALSE = nonRepudiation, digitalSignature, keyEncipherment = @alt_names [alt_names] DNS.1 = <ОСНОВНОЙ FQDN> DNS.2 = exampleapp.com DNS.3 = exampleapp.com и далее по вашему списку… Файл запроса (*.req) можно удалить. Для применения полученной ключевой пары необходимо настроить используемое программное обеспечения согласно прилагаемой документации (например, WEB-сервер Apache для обслуживания запросов по защищенному протоколу HTTPS). 5. Конвертирование файлов с помощью openssl: Конвертирование файлов PFX в PEM openssl pkcs12 -in <путь>\my_certificate.pfx -out <путь>\my_certificate_with_key.pem -nodes Извлечение из файла PEM закрытого ключа (без служебной информации): Openssl rsa –in <путь>\my_certificate_with_key.pem –out <путь>\my_private_key.pem Извлечение из файла PEM открытого ключа (сертификата, без служебной информации): Openssl x509 –in <путь>\my_certificate_with_key.pem –out <путь>\my_certificate.pem Извлечение из PFX закрытого ключа (со служебной информацией): openssl pkcs12 -in <путь>\my_certificate.pfx -out <путь>\my_private_key.pem –nodes – nocerts Извлечение из PFX клиентского открытого ключа (сертификата со служебной информацией): openssl pkcs12 -in <путь>\my_certificate.pfx -out <путь>\my_certificate.pem –nodes –clcert – nokeys Извлечение из PFX цепочки сертификации (со служебной информацией): openssl pkcs12 -in <путь>\my_certificate.pfx -out <путь>\CA_certificate.pem –nodes –cаcert – nokeys