Приложение Д. Генерация сертификатов SSL |
Для компонентов Dr.Web для интернет-шлюзов UNIX, использующих для обмена данными защищенный канал передачи данных SSL/TLS и основанные на нем прикладные протоколы, такие, как HTTPS, LDAPS, SMTPS и т. п., необходимо обеспечить наличие закрытых ключей SSL и соответствующих им сертификатов. Для некоторых компонентов ключи и сертификаты генерируются автоматически, а для других они должны быть предоставлены пользователем Dr.Web для интернет-шлюзов UNIX. Все компоненты используют сертификаты, представленные в формате PEM. Для генерации закрытых ключей и сертификатов, используемых для соединений через SSL/TLS, в том числе для удостоверяющих сертификатов центра сертификации (ЦС) и для подписанных сертификатов, можно использовать утилиту командной строки openssl (входит в состав криптографического пакета OpenSSL). Рассмотрим последовательность действий, необходимых для создания закрытого ключа и соответствующего ему сертификата SSL, а также сертификата SSL, подписанного удостоверяющим сертификатом ЦС. Чтобы сгенерировать закрытый ключ SSL и сертификат 1.Для генерации закрытого ключа (алгоритм RSA, длина ключа — 2048 бит) выполните команду:
Если требуется защитить ключ паролем, дополнительно используйте опцию -des3. Сгенерированный ключ находится в файле keyfile.key в текущем каталоге. Для просмотра сгенерированного ключа можно использовать команду:
2.Для генерации сертификата на указанный срок на основании имеющегося закрытого ключа (в данном примере — на 365 суток) выполните команду:
Для проверки содержимого сгенерированного сертификата можно воспользоваться командой:
Чтобы зарегистрировать сертификат в качестве доверенного сертификата ЦС 1.Переместите или скопируйте файл сертификата в системный каталог доверенных сертификатов (в Debian или Ubuntu — /etc/ssl/certs/). 2.Создайте в каталоге доверенных сертификатов символическую ссылку на сертификат, именем которой будет являться хеш сертификата. 3.Переиндексируйте содержимое системного каталога сертификатов. Приведенный ниже пример выполняет все эти три действия. Предполагается, что текущим каталогом является системный каталог доверенных сертификатов /etc/ssl/certs/, а сертификат, который регистрируется в качестве доверенного, располагается в файле /home/user/ca.crt:
Чтобы создать подписанный сертификат 1.Сгенерируйте файл-запрос на подписание сертификата (Certificate Signing Request — CSR) на основании имеющегося закрытого ключа. Если ключа не имеется, сгенерируйте его. Запрос на подписание создается командой:
Эта команда, так же как и команда создания сертификата, запрашивает данные, идентифицирующие сертифицируемый объект. Здесь keyfile.key — имеющийся файл закрытого ключа. Полученный запрос будет сохранен в файл request.csr. Для проверки результата создания запроса можно воспользоваться командой:
2.На основании запроса и имеющегося сертификата ЦС создать подписанный сертификат. Создание подписанного сертификата производится командой:
Для проверки результата можно воспользоваться командой:
Повторите процедуру создания ключа и сертификата (или подписанного сертификата, в зависимости от необходимости) столько раз, сколько уникальных сертификатов вам требуется. Например, с точки зрения соображений безопасности, каждый агент распределенной проверки файлов Dr.Web Network Checker, входящий в сканирующий кластер, должен иметь собственную пару ключ/сертификат. Преобразование подписанного сертификата Некоторые браузеры или почтовые клиенты могут потребовать преобразования подписанного сертификата, используемого для удостоверения личности, в формат PKCS12. Указанное преобразование может быть выполнено командой:
Здесь sigcert.crt — имеющийся файл подписанного сертификата, а keyfile.key — файл соответствующего ему закрытого ключа. Полученный преобразованный сертификат будет сохранен в файл sigcert.pfx. |