Для начала создадим сертификат для нашего хоста, с именем laptop. Начнем с генерации "запроса на сертификат":
>$ openssl req –new –nodes –newkey rsa:1024 –sha1 –keyform PEM –keyout \
> laptop.private –outform PEM –out request.pem
Здесь будет предложено ответить на ряд вопросов:
>Country Name (2 letter code) [AU]:NL
>State or Province Name (full name) [Some-State]:.
>Locality Name (eg, city) []:Delft
>Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linux Advanced Routing & Traffic Control
>Organizational Unit Name (eg, section) []:laptop
>Common Name (eg, YOUR name) []:bert hubert
>Email Address []:[email protected]
>Please enter the following 'extra' attributes
>to be sent with your certificate request
>A challenge password []:
>An optional company name []:
Заполните поля запроса по своему усмотрению.
Теперь создадим собственно сертификат, подписанный самим собой:
>$ openssl x509 –req –in request.pem –signkey laptop.private –out \
> laptop.public
>Signature ok
>subject=/C=NL/L=Delft/O=Linux Advanced Routing & Traffic \
> Control/OU=laptop/CN=bert hubert/[email protected]
>Getting Private key
После этого файл request.pem можно удалить.
Повторите эту процедуру для всех ваших компьютеров. Вы можете свободно передавать сгенерированные открытые ключи (файлы .public), но сохраняйте файлы .private в секрете!
7.2.3.2. Настройка и запуск.
Теперь, после того как мы создали открытый и секретный ключи, мы можем передать их racoon.
Вернемся к нашей предыдущей конфигурации хостов 10.0.0.11 ('upstairs') и 10.0.0.216 ('laptop').
В файл racoon.conf , на 10.0.0.11, добавим: path certificate "/usr/local/etc/racoon/certs";
>remote 10.0.0.216
>{
> exchange_mode aggressive,main;
> my_identifier asn1dn;
> peers_identifier asn1dn;
>certificate_type x509 "upstairs.public" "upstairs.private";
>peers_certfile "laptop.public";
> proposal {
> encryption_algorithm 3des;
> hash_algorithm sha1;
> authentication_method rsasig;
> dh_group 2 ;
> }
>}
Тем самым сообщив racoon, что сертификаты находятся в каталоге /usr/local/etc/racoon/certs/. Кроме того, добавим раздел, описывающий удаленный компьютер 10.0.0.216.
Строки asn1dn говорят о том, что локальный и удаленный идентификаторы следует извлекать из открытых ключей. Это — 'subject=/C=NL/L=Delft/O=Linux Advanced Routing & Traffic Control/OU=laptop/CN=bert hubert/[email protected]' из листинга, приведенного выше.
Строка certificate_type указывает имена файлов с локальными открытым и секретным ключами. peers_certfile указывает, что открытый ключ удаленного узла следует взять из файла laptop.public