Дата поста: 24-09-2012
Сертификат 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