Генерация CSR с помощью OpenSSL

Генерация CSR с помощью OpenSSL

Первоначально на Вашем ПК должен быть установлен OpenSSL. Установка в различных дистрибутивах и OS

Red-Hat/CentOS/Fedora

yum install openssl

Debian/Ubuntu

apt-get install openssl

FreeBSD

Установка из портов

cd /usr/ports/security/openssl && make install all clean

Или установка пре-компилированных файлов

pkg_add -r openssl 

Gentoo

emerge install security/openssl 

Ссылки на скачку бинарных файлов для Windows и Solaris можно найти на официальном сайте OpenSSL - https://www.openssl.org/related/binaries.html

Создаем директорию, где будут хранится наш CSR и Ключ:

mkdir ~/ssl

Генерируем наш ключ размером 4096 байт

openssl genrsa -out ~/ssl/rx-support.key 4096

Создаем CSR-запрос и заполняем форму

openssl req -new -sha256 -key ~/ssl/rx-support.key -out ~/domain.com.ssl/rx-support.csr

Можно указать дополнительно ключ -subj и указать необходимые поля, дабы не вводить в ручную данные

openssl req -new -sha256 -key ~/ssl/rx-support.key -out ~/domain.com.ssl/rx-support.csr -subj "/C=UA/L=Nikolaev/ST=Nikolaevska/O=Omnilance Ltd/OU=IT Department/CN=rx-support.net"

При генерации в поле ON и OU нельзя использовать символы < > ~ ! @ # $ % ^ * / \ ( ) ?.,&

Сокращение Полное название Описание
CN Common Name Используется для ввода домена rx-support.net или в случае wildcard - *.rx-support.net. `
O Organization Поле ввода названия организации
OU Organization Unit Поле ввода названия отдела организации
L City or Locality Город
ST State or Province Область или регион
C Country Название страны в двух-буквенном формате ISO

> При запросе пароля его вводить не обязательно (просто нажмите enter)

Провека CSR

Выполнив команду ниже мы получим всю информацию об запросе

 openssl req -noout -text -in ~/rx-support.net.csr

Сгенерировать запрос с поддержкой SAN (Alternative Name)

В случае генераци мультидоменного сертфиката, вам потребуется добавить дополнительные параметры

openssl req -new -newkey rsa:4096 -nodes -sha256 -subj "/C=UA/ST=Mykolayivska/L=Mykolayiv/O=OMNILANCE LTD/OU=IT/CN=omnilance.com/emailAddress=admin__box@rx-support.net" -config <(
cat <<-EOF
[req]
default_bits = 4096
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[ dn ]
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1 = rx-support.com
EOF
)