вторник, 21 июля 2015 г.

Самоподписной wildcard сертификат

Создаем конфигурационный файл openssl.conf примерного содержания


[req]
default_bits = 4096       # Длинна ключа в битах.
default_keyfile = cert.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 = Tula # Locality - Город.
CN = l.autocrm.ru      # Common Name - Имя домена.
emailAddress = support@autocrm.ru      # Адрес электронной почты.
# Можно ещё указать следующие поля:
# ST (State - штат, название провинции и т.п.)
# O (Organization - название организации)
# OU (Organizational Unit - название подразделения)

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

[alt_names]
# Имена. Можно указать хоть сколько, главное чтобы цифры после точки были разными.
DNS.0 = *.l.autocrm.ru
DNS.1 = *.d.autocrm.ru
Сертификат создаем командой
openssl req -new -x509 -days 9999 -nodes -newkey rsa:4096 -out cert.pem -keyout cert.key -config openssl.conf
Добавляем поддержку в nginx

server {
    listen          80;
        server_name ~^(?<branch>.+)\.l\.autocrm\.ru$;
    rewrite ^ https://$host$request_uri? permanent;
}

server {
        listen 443 ssl;
        server_name ~^(?<branch>.+)\.l\.autocrm\.ru$;
    ssl         on;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2; # SSLv3 исключить CVE-2014-3566
    ssl_certificate /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.key;
.................
}
 

Комментариев нет:

Отправить комментарий