Как создать и импортировать сертификаты в DFL-210/260/800/860/1600/2500 для в авторизации IPSec.

Данное руководство не рассматривает настройку сервера сертификатов, а только их создание и импортирование, а так же преобразование их в формат понятный для ОС семейства Windows 2000/XP/Vista, для использования в аутентификации IPSec или L2TP over IPSec, поэтому созданные сертификаты должны использоваться без проверки CRLs (Certificate Revocation Lists).

В примере используется программа OpenSSL 0.9.8k для ОС Linux Debian Lenny.

Откройте файл  /etc/ssl/openssl.cnf, найдите строку default_days  = 365 и укажите нужное вам количество дней, на которые выдается сертификат, например, 1095, затем найдите строку # subjectAltName=email:copy и удалите символ #. Сохраните файл.

Создайте отдельную папку для сертификатов:

mkdir cert &&  cd cert/

Скопируйте скрипт, упрощающий создание CA сертификата.

test@svasiliev:~/cert$ cp /usr/lib/ssl/misc/CA.sh . 

Проверьте наличие файла:

test@svasiliev:~/cert$ ls 
CA.sh

Измените в файле строку DAYS="-days 365", указав нужное количество дней, в противном случае необходимо выдавать новые сертификаты каждый год. Не рекомендуется менять это значение для повышения безопасности.

Создайте самоподписанный сертификат CA.

test@svasiliev:~/cert$ sh CA.sh -newca

Сделайте так, как указано на скриншоте ниже:

Теперь ответьте на максимум вопросов, пример показан ниже на скриншоте:

Создание самоподписанного сертификата CA demoCA/cacert.pem и секретного ключа demoCA/private/cakey.pem завершено. В дальнейшем сертификат и ключ понадобятся для подписи сертификатов, а CA сертификат будет импортирован в удаленные устройства или компьютеры без секретного ключа. 

ВНИМАНИЕ НЕ РАСПРОСТРАНЯЙТЕ СЕКРЕТНЫЙ КЛЮЧ ОТ СА СЕРТИФИКАТА! ВСЛУЧАЕ КОМПРОМЕТАЦИИ КЛЮЧА НЕМЕДЛЕННО СОЗДАТЬ НОВЫЙ КЛЮЧ И СЕРТИФИКАТ СА. ЭТО ПРИВЕДЕТ К НЕОБХОДИМОСТИ ЗАМЕНЫ ВСЕХ ВЫДАННЫХ РАНЕЕ СЕРТИФИКАТОВ.

Теперь необходимо создать два подписанных сертификата с секретными ключами, один из сертификатов должен быть импортирован в DFL и установлен в тоннеле в качестве local certificate, другой сертификат должен быть импортирован в удаленное устройство или компьютер.

Создайте запрос на сертификат с секретным ключом для DFL:

 test@svasiliev:~/cert$ openssl req -new -keyout dflkey.pem -out dflreq.pem

Как и при создании сертификата СА, введите парольную фразу и ответе на вопросы.

Подпишите сертификат с помощью сертификата СА и секретного ключа сертификата СА (Примечание: т.к. для создания сертификата использовался скрипт CA.sh, все параметры уже заданны, и система знает, где искать сертификат CA и его приватный ключ, поэтому можно не указывать их явно для подписи):

test@svasiliev:~/cert$ openssl ca -policy policy_anything -out dflcert.pem -infiles dflreq.pem

Введите парольную фразу для секретного ключа CA (demoCA/private/cakey.pem).

Снимите шифрование с секретного ключа для DFL:

test@svasiliev:~/cert$ openssl rsa -in dflkey.pem -out dfl.pem 

Создайте таким же способом подписанный сертификат с секретным ключем для удаленного хоста.

test@svasiliev:~/cert$ openssl req -new -keyout remotekey.pem -out remotereq.pem

test@svasiliev:~/cert$ openssl ca -policy policy_anything -out remotecert.pem -infiles remotereq.pem

test@svasiliev:~/cert$ openssl rsa -in  remotekey.pem -out remote.pem

Таким же образом необходимо создать отдельные сертификаты на каждый удаленный хост.

Импорт сертификатов на DFL

Сертификаты cacert.pem, dflcert.pem и секретный ключ dfl.pem должны быть импортированы в локальный DFL, в удаленное устройство должны быть импортированы сертификаты cacert.pem, remotecert и секретный ключ remote.pem.

Пример импорта сертификатов на локальный DFL

Зайдите в Objects → Authentication Objects, нажмите кнопку Add, из выпадающего меню выберите Certificate.

Заполните поля следующим образом:
- Поставьте галочку напротив Disable CRLs (Certificate Revocation Lists)
- Name: CA_cert
- Отметьте Upload a certificate belonging to a remote peer or a CA server 
- Нажмите ОК.

Укажите путь до cacert.pem сертификата и нажмите Upload X.509 certificate.

Нажмите кнопку Add, из открывшегося меню выберите Certificate.

Заполните поля следующим образом:
- Поставьте галочку напротив Disable CRLs (Certificate Revocation Lists)
- Name: local_cert
- Отметьте Upload a previously created X.509 Certificate, along with its private key 
- Нажмите ОК

Укажите путь до сертификата dflcert.pem и нажмите Upload X.509 certificate.

Укажите путь до секретного ключа dfl.pem  и нажмите Upload private key.

Выберите Interfaces → IPSec → тоннель, для которого необходимо использовать сертификаты, выберите вкладку Authentication.

В окне X.509 Certificate выберите CA_cert и нажмите кнопку  >>, в поле Gateway certificate: укажите local_cert.

Сохраните и активируйте настройки.

Установка сертификатов в удаленный DFL производиться аналогично, только в данном случае используются сертификаты cacert.pem и remotecert.pem и секретный ключ remote.pem.

Установка сертификатов в ОС Windows.

Преобразуйте сертификаты в формат, понятный Windows:

test@svasiliev:~/cert$ openssl pkcs12 -export -inkey remote.pem -certfile demoCA/cacert.pem -in remotecert.pem -out wincert.p12

- Введите парольную фразу, которая понадобится для установки сертификата в Windows.

- Скопируйте файлы cacert.pem и wincert.p12 на компьютер под управлением ОС Windows. Переименуйте файл cacert.pem на cacert.crt 

- Нажмите дважды мышкой по файлу  cacert.crt, нажмите Установить сертификат, затем Далее, выберите Поместить все сертификаты в следующие хранилище, нажмите кнопку  Обзор и укажите Доверенные корневые центры сертификации, затем нажмите ОК и Далее, потом на кнопку Готово

Нажмите дважды мышкой по файлу  wincert.p12, запустится мастер импорта сертификатов. Дважды нажмите на кнопку Далее, в поле Пароль введите парольную фразу, используемую для конвертации сертификата в формат p12 и нажмите Далее,  выберите Поместить все сертификаты в следующие хранилище, нажмите кнопку Обзор, выберите Личные, затем нажмите ОКДалее,  затем кнопку Готово

ВНИМАНИЕ: При использовании Windows 2003 необходимо импортировать сертификаты в профиль пользователя и компьютера.