Товарищи админы! Дали мне на работе задание разработать для новеньких сотрудников инструкцию по настройке OpenSSL CA под *nix (Solaris или SUSE).
Но я блондинка, а, следовательно, мысли свои выражаю витьевато… Получился у меня черновой вариант инструкции B2B (Blonde2Blonde), покритикуйте, если что-то забыла или описала непонятно.
Заранее спасибо за потраченное время!
1. (файл openssl.cnf приаттачен к инструкции)
В файлике /etc/ssl/openssl.cnf надо проделать следующие изменения:
[ CA_default ]
dir = . # Это каталог для работы с ssl
certs = $dir/ssl.crt # где будут лежать сертификаты
crl_dir = $dir/ssl.crl # список отозванных сертификатов
database = $dir/index.txt # Здесь index file для индексирования запросов на подпись
new_certs_dir = $dir/ssl.crt # Сюда будут писать новые сертификаты
certificate = $dir/openssl_ca.pem # Корневой сертификат
serial = $dir/serial # Серийный номер запроса
crl = $dir/ssl.crl/openssl_ca.pem # Текущий список отозванных сертификатов
private_key = $dir/ssl.key/openssl_ca.key# Секретный ключ для основного сертификата
RANDFILE = $dir/ssl.key/.rand #
2. Создаём “корневой” сертификат
2.1 Генерим ключ для сертификата openssl genrsa -out
Но я блондинка, а, следовательно, мысли свои выражаю витьевато… Получился у меня черновой вариант инструкции B2B (Blonde2Blonde), покритикуйте, если что-то забыла или описала непонятно.
Заранее спасибо за потраченное время!
<lj-cut text="Настройка конфигурации OpenSSL">
1. (файл openssl.cnf приаттачен к инструкции)
В файлике /etc/ssl/openssl.cnf надо проделать следующие изменения:
[ CA_default ]
dir = . # Это каталог для работы с ssl
certs = $dir/ssl.crt # где будут лежать сертификаты
crl_dir = $dir/ssl.crl # список отозванных сертификатов
database = $dir/index.txt # Здесь index file для индексирования запросов на подпись
new_certs_dir = $dir/ssl.crt # Сюда будут писать новые сертификаты
certificate = $dir/openssl_ca.pem # Корневой сертификат
serial = $dir/serial # Серийный номер запроса
crl = $dir/ssl.crl/openssl_ca.pem # Текущий список отозванных сертификатов
private_key = $dir/ssl.key/openssl_ca.key# Секретный ключ для основного сертификата
RANDFILE = $dir/ssl.key/.rand #
2. Создаём "корневой" сертификат
2.1 Генерим ключ для сертификата openssl genrsa -out <new.key>
2.2 Генерим запрос openssl req -new -key <new.key> -out <new.csr>
2.3 генерим сертификат openssl x509 -req -days 365 -in <new.csr> -CA <ssl-base-dir>certs/CA.crt -CAkey <ssl-base-dir>private/CA.key -CAcreateserial -out <new.crt>
Пример:
Секретный ключ (он нужен для того, чтобы можно было воспользоваться вашим корневым сертификатом для подписи остальных) и сертификат создаются одной командой:
# openssl req -config /etc/ssl/openssl.cnf -new -x509 -keyout ssl.key/openssl_ca.pem -out openssl_ca.pem -days 3650
Вас спросят пароль - введите и запомните его. Все остальные поля заполняйте произвольно. Снимите пароль с ключа:
# openssl rsa -in ssl.key/openssl_ca.pem -out openssl_ca.key
Собственно, выпуск сертификата:
# openssl x509 -in openssl_ca.pem -out openssl_ca.crt
3. Выполнить следующие команды
Создание файла индексов
# touch index.txt
Создание файла серийных номеров (ключевое слово serial из openssl.cnf):
# echo \'01\' > serial
Этот файл должен содержать две цифры (обязательно). Если вы ещё не создавали никаких сертификатов кроме корневого, файл должен содержать 01.
4. Создание сертификат сервера.
4.1 Создание запроса на подпись нового сертификата и секретный ключ к нему:
# openssl req -config /etc/ssl/openssl.cnf -new -keyout ssl.key/openssl_srv.pem -out ssl.csr/openssl_srv.pem
Вводя даные, учтите, что поле Common Name должно содержать полностью определённое доменное имя (FQDN) того сайта, где вы будете использовать https-протокол, чтобы броузеры не выдавали предупреждения о неверности имени.
Снимите пароль с ключа:
# openssl rsa -in ssl.key/openssl_srv.pem -out openssl_srv.key
Подпишите запрос (подписка запроса и есть создание нового сертификата) своим корневым сертификатом:
# openssl ca -config /etc/ssl/openssl.cnf -policy policy_anything -out ssl.crt/openssl_srv.pem -infiles ssl.csr/openssl_srv.pem
Подготовьте сертификат к использованию:
# openssl x509 -in ssl.crt/openssl_srv.pem -out ssl.crt/openssl_srv.crt
Генерим CRL
# openssl ca -gencrl -out ssl.crl/openssl_srv.pem
</lj-cut>