OpenSSL - настройка и создание сертификатов

Материал из OSZone.net wiki.

Перейти к: навигация, поиск

Содержание

Рецепт от Barracuda:

Предварительные настройки

Корректируем конфиг OpenSSL:

      dir = .
      certs = $dir/ssl.crt
      crl_dir = $dir/ssl.crl
      database = $dir/index.dat
      new_certs_dir = $dir/ssl.crt
      certificate = $dir/ssl.crt/<файл корневого сертификата>
      serial = $dir/serial
      crl = $dir/ssl.clr/<файл отозванных сертификатов>
      private_key = $dir/ssl.key/<файл приватного ключа - ключа корневого сертификата>
      RANDFILE = $dir/ssl.key/.rand

NOTE: Для удобства при заполнении полей при создании сертификатов можно поменять

        значения по умолчанию для таких полей сертификатов, как страна, штат, отдел,
        адресс электронной почты и общее название. ВНИМАНИЕ! При создании сертификата
        сервера, знаяение поля Common Name должно соответствовать доменному имени
        (FQDN) сервера, на котором будет работать сертификат.

Создаём файл серийного номера:

      # echo '01' > serial

Создаём файл базы данных сертификатов:

     # touch index.dat

Создаём корневой сертификат:

Создаём ключ корневого сертификата:

     # openssl genrsa -des3 -out <файл ключа корневого сертификата> 1024

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

     # openssl req -new -x509 -days 3653 -key <файл ключа корневого сертификата>\
        -out <файл сертификата>

Создаём запорс на подписание сертификата сервера:

Создаём ключ сертификата сервера:

     # openssl genrsa -des3 -out <файл ключа сертификата сервера> 1024

Создаём запрос на пордписание сертификата сервера:

     # openssl req -new -days 1096 -key <файл ключа сертификата сервера> \
        -out <файл запрос на подписание сертификата сервера>

Подписываем запрос на подписание сертификата сервера (создание сертификата сервера):

     # openssl ca -config /etc/ssl/openssl.cnf -policy policy_anything \
        -days 1096 -out <файл сертификата сервера> \
        -infiles <файл запроса на подписание сертификата сервера>


Просмотр содержимого файлов сертификатов/ключей:

Просмотр содержимого файла ключа:

     # openssl rsa -noout -text -in <файл ключа>

Просмотр содержимого файла сертификата:

     openssl x509 -noout -text -in <файл сертификата>

Просмотр содержимого файла запроса на подписние сертификата сервера:

     openssl req -noout -text -in <файл запроса на подписние сертификата сервера>

Смена/удаление пароля из файла ключа

Смена пароля в файле ключа:

     # openssl rsa -des3 -in <файл ключа> -out <временный файл ключа>
     # mv <временный файл ключа> <файл ключа>

Удаление пароля из файла ключа:

     # cp <файл ключа> <сохраняемый файл ключа>
     # openssl rsa -in <сохраняемый файл ключа> -out <файл ключа>

Литература:

Тема форума

Личные инструменты