Подробно рассмотрим каким образом можно быстро и просто генерировать самоподписные сертификаты на linux при помощи пакета easyrsa.
установка easyrsa
В моём примере будет CentOS 7, но принцип один во всех дистрибутивах. Начнём с того что надо этот пакет установить:
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
build-ca
Следующий этап — создание корневого сертификата. Я везде буду использовать директиву nopass, что бы не вводить каждый раз пароль. Да и не понятно зачем он тут вообще.
/usr/share/easy-rsa/3/easyrsa build-ca nopass
/usr/share/easy-rsa/3/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
Аналогичным образом генерируется сертификаты клиента. Как мы помним в этом случае сертификат из атрибутов будет иметь только CN.
/usr/share/easy-rsa/3/easyrsa build-client-full cmp-client-01 nopass
Мы закончили, сертификаты лежат в папке pki/issued, а закрытые ключи к ним в папке pki/private.