Сертификаты EasyRSA
Создание центра сертификации можно немного упростить. Существует набор скриптов под названием EasyRSA
, который позволяет инициализировать центр сертификации, а также подписывать и отзывать сертификаты. Сначала установите пакет easy-rsa
из официальных репозиториев:
sudo apt install easy-rsa
Далее нужно создать папку в которой будут находится файлы центра сертификации. Например, в домашней папке:
mkdir ~/easy-rsa-ca
После этого скопируйте файлы из /usr/share/easy-rsa/
в эту папку:
cp -R /usr/share/easy-rsa/* ~/easy-rsa-ca
Дальше перейдите в неё и инициализируйте центр сертификации:
cd ~/easy-rsa-ca
./easyrsa init-pki
Прежде чем вы сможете создать сертификат, необходимо создать файл vars и в нём прописать информацию о центре сертификации:
nano ./vars
set_var EASYRSA_REQ_COUNTRY "US"
set_var EASYRSA_REQ_PROVINCE "California"
set_var EASYRSA_REQ_CITY "California"
set_var EASYRSA_REQ_ORG "Losst"
set_var EASYRSA_REQ_EMAIL "support@losst.pro"
set_var EASYRSA_REQ_OU "Losst"
set_var EASYRSA_ALGO "rsa"
set_var EASYRSA_DIGEST "sha512"
Первые 7 параметров аналогичны тем, что заполняются при создании запроса на подписание сертификата. Параметр EASYRSA_ALGO
позволяет настроить алгоритм шифрования, можно использовать стандартный RSA
или алгоритм на основе эллиптических кривых ES
. Последний параметр, это формат подписи сертификатов. После этого можно создать сертификат CA
:
./easyrsa build-ca
Для корневого сертификата необходимо задать пароль. Если этого не сделать, сертификат не будет создан:
А в Common Name
можно указать название центра сертификации, которое будет отображаться в браузере в информации о том кем подписан сертификат:
После этого можно переходить к подписи CSR
. Например, давайте подпишем domain.csr
, который был создан ранее. Сначала этот запрос надо импортировать. Для этого используйте такую команду:
./easyrsa import-req ~/certs/domain-server.csr domain-server
В первом параметре нужно указать путь к фалу CSR
, а во втором имя, с помощью которого вы будете взаимодействовать с сертификатом:
После этого вы можете подписать этот запрос используя имя, заданное при импорте:
./easyrsa sign-req server domain-server
Команде необходимо передать два параметра тип сертификата и имя запроса. Тип сертификата может быть server или client
. Программа попросит подтвердить данные сертификата, наберите yes
и нажмите Enter
:
Затем нужно будет ввести пароль от корневого сертификата. После этого будет создан новый сертификат в папке pki/issued
с расширением .crt
: