Easyrsa создание самоподписных сертификатов

Подробно рассмотрим каким образом можно быстро и просто генерировать самоподписные сертификаты на linux при помощи пакета easyrsa.

установка easyrsa

В моём примере будет CentOS 7, но принцип один во всех дистрибутивах. Начнём с того что надо этот пакет установить:

 yum install easy-rsa

yum install easy-rsa

По дефолту исполняемый файл – /usr/share/easy-rsa/3/easyrsa. Если вдруг не там, попробуйте набрать:

whereis easy-rsa

инициализация

После установки можно сразу приступать к генерации. Я создал каталог где будут хранится мои сертификаты

mkdir -p /home/cert/cmp

переходим в созданный каталог и запускаем инициализацию

cd /home/cert/cmp
/usr/share/easy-rsa/3/easyrsa init-pki

easуrsa init-pki
build-ca

Следующий этап – создание корневого сертификата. Я везде буду использовать директиву nopass, что бы не вводить каждый раз пароль. Да и не понятно зачем он тут вообще.

/usr/share/easy-rsa/3/easyrsa build-ca nopass

easyrsa build-ca
затем генерируем DH:

/usr/share/easy-rsa/3/easyrsa gen-dh

easyrsa gen-dh

генерация сертификатов

Существует два способа генерации сертификатов. В сертификате будет указан только commonName (CN). Этот способ позволяет сэкономить время – не надо отвечать на много ненужных вопросов. Такие сертификаты подходят например для использования в openvpn. Но если вы хотите указывать в сертификате не только CN, но и например email или country code можно использовать опции

--req-c=CC : country code (2-letters)
--req-st=NAME : State/Province
--req-city=NAME : City/Locality
--req-org=NAME : Organization
--req-email=NAME : Email addresses
--req-ou=NAME : Organizational Unit

Сертификат для сервера:

/usr/share/easy-rsa/3/easyrsa build-server-full cmp-server-name nopass

easyrsa build-server-full
Аналогичным образом генерируется сертификаты клиента. Как мы помним в этом случае сертификат из атрибутов будет иметь только CN.

/usr/share/easy-rsa/3/easyrsa build-client-full cmp-client-01 nopass

easyrsa build-client-full
Мы закончили, сертификаты лежат в папке pki/issued, а закрытые ключи к ним в папке pki/private.