Сертификат SSL требуется для протокола HTTPS (шифрованный доступ через браузер). Его можно получить у официальной компании типа VeriSign, но за это придется ежегодно платить некоторую сумму денег. Обойти это можно создав самоподписанный сертификат. Браузер, конечно, предупредит о том, что сертификат не заслуживает доверия, но Вы можете просто добавить его в исключения и больше браузер не будет ругаться.
Создаем каталог для работы:

mkdir /var/tmp/openssl
cd /var/tmp/openssl

Входим в него через проводник или в терминале, используя любой редактор, создаем файл openssl.cnf со следующим содержанием (подредактировав его под себя):
openssl.cnf:

[req]
default_bits = 4096 # Длинна ключа в битах.
default_keyfile = pupkin.ru.key # Имя файла, в который будет записан закрытый ключ.
encrypt_key = no # Нам не нужно шифровать закрытый ключ паролем.
default_md = sha512 # Алгоритм хеша.
x509\_extensions = v3\_req # Включаем расширение V3.
prompt = no # Не нужно запрашивать данные у пользователя, мы всё пропишем здесь.
distinguished\_name = req\_distinguished_name # Имя секции с данными (может быть любым).

[req\_distinguished\_name]
C = RU # Country — Двухбуквенный код страны.
L = Urupinsk # Locality — Город.
CN = pupkin.ru # Common Name — Имя домена.
emailAddress = vasya@pupkin.ru # Адрес электронной почты.
\# Можно ещё указать следующие поля:
\# ST (State — штат, название провинции и т.п.)
\# O (Organization — название организации)
\# OU (Organizational Unit — название подразделения)

[v3_req]
\# Список альтернативных имён. Можно указать прямо здесь, но это не
\# удобно, особенно если их много, так что мы указываем название секции
\# с именами.
subjectAltName = @alt_names

[alt_names]
\# Имена. Можно указать хоть сколько, главное чтобы цифры после точки были разными.
DNS.0 = other.pupkin.ru
DNS.1 = *.other.pupkin.ru
DNS.2 = pupkin.localnet

Затем возвращаемся в окно терминала и создаем сертификат:

openssl req -new -x509 -days 3650 -config openssl.cnf -out pupkin.ru.crt

Опции означают следующее:

  • req – команда создание запроса на сертификат
  • -new – создать новый запрос
  • -x509 – создать готовый самоподписанный сертификат, а не только запрос
  • -days 3650 – срок действия сертификата, в данном случае 10 лет
  • -config openssl.cnf – наш файл с настройками
  • -out pupkin.ru.crt – в этот файл будет записан созданный сертификат, без этой опции сертификат будет выведен на стандартный вывод

После выполнения команды в текущей директории будут два новых файла – pupkin.ru.key (закрытый ключ) и pupkin.ru.crt (сертификат). Можно просмотреть сертификат и удостовериться, что все данные корректны:

openssl x509 -in server.crt -noout -text | more

Комментарии