Сперва необходимо подготовить почву
Отредактировать файл openssl.cnf
Необходимо подправить дефолтные настройки сертификатов(чтоб не забивать каждый раз руками, и ОБЯЗАТЕЛЬНО увеличить срок действия сертификата)
Создаем файл /usr/local/openssl/serial c содержимым '01'
# touch serial
# echo 01 > serial
Создаем каталоги /crl, /newcerts, /private
# mkdir crl newcerts private
Для каталога private, в целях безопастности частного ключа сервера,
рекомендую установить права только для пользователя root
# chmod go-rwx private
Создаем пустой файл /usr/local/openssl/index:
# touch index
И наконец создаем сертификат CA
openssl req -new -nodes -x509 -keyout private/CA_key.pem -out CA_cert.pem -days 3650
Команда req заставляет OpenSSL создать сертификат, ключи: -new - cоздать запрос на сертификат, -nodes - не шифровать закрытый ключ, -x509 (совместно с -new) - создать самоподписной сертификат (CA), -keyout - задает местонахождение закрытого ключа, -out - задает местонахождение самоподписного сертификата, -days - задает время действия сертификата (365x10 дней, что приблизительно равно десяти годам). В процессе выполнения команды на экран будут выданы запросы о вводе таких параметров как: Country Name, State or Province Name; Locality Name; Organization Name; Organizational Unit Name; Common Name; Email Address. Самым важным параметром является значение Common Name. В данном случае оно должно совпадать с FQDN-именем сервера.
Теперь, когда мы имеем CA, мы можем создавать сертификаты и ключи для
машин, образующих туннель. Вместо host_x и client_x рекомендую
указывать осмысленное имя вашей машины-сервера и клиентов, что бы потом
не запутаться самому.
Сгенерируем частный ключ для сервера, его настоятельно рекомендуется
хранить в тайне:
# openssl genrsa -out host_x.key
Генерируем сертификат:
# openssl req -new -nodes -key host_x.key -out host_x.csr
# openssl ca -batch -config openssl.cnf -in host_x.csr -out host_x.cert
Теперь повторим то же самое, но только для клиента:
# openssl genrsa -out client_x.key
# openssl req -new -nodes -key client_x.key -out client_x.csr
# openssl ca -batch -config openssl.cnf -in client_x.csr -out client_x.cert
И в конце создаем ключик ta.key. Этот ключ используется для
предотвращения DoS атак и UDP port flooding
# openvpn --genkey --secret ta.key
Таким образом мы получили подписанный нами же сертификат X.509.
Необходимо повторить эти действия для всех имеющихся у нас машин.
Далее создать ключ Диффи Хельман
# openssl dhparam -out dh1024.pem 1024
четверг, 29 ноября 2007 г.
Создание OpenSSL Сертификатов для Openvpn
Автор: Tolki на 08:53
Подписаться на:
Комментарии к сообщению (Atom)
3 комментария:
Здравствуйте, вы написали:
1)
>Таким образом мы получили подписанный нами же сертификат X.509.
>Необходимо повторить эти действия для всех имеющихся у нас машин.
Какие именно действия нужно повторить для имеющихся машин? Создание центра сертификации CA или создание сертификата client_xxx.cert?
2) Мы создали файл ta.key, а как он будет помогать и защищать от DoS-ов, надо ли что-то ещё настраивать с ним?
3) Зачем нам далее создавать
ключ Диффи Хельман
# openssl dhparam -out dh1024.pem 1024
?
Здравствуйте, вы написали:
1)
>Таким образом мы получили подписанный нами же сертификат X.509.
>Необходимо повторить эти действия для всех имеющихся у нас машин.
Какие именно действия нужно повторить для имеющихся машин? Создание центра сертификации CA или создание сертификата client_xxx.cert?
2) Мы создали файл ta.key, а как он будет помогать и защищать от DoS-ов, надо ли что-то ещё настраивать с ним?
3) Зачем нам далее создавать
ключ Диффи Хельман
# openssl dhparam -out dh1024.pem 1024
?
Спасибо за пост. Смотрел генерацию ключей здесь - http://sysadm.pp.ua/linux/shifrovanie/openvpn-easy-rsa.html . Нехватает CRL листов с примером отзвыа OpenVPN сертификата... Подскажите, как генерировать те же ключи используя openSSL ?
Отправить комментарий