Что такое SAN-сертификат и как его создавать с помощью OpenSSL

Сократить расходы на SSL за счет использования единого сертификата для нескольких веб-сайтов? Это возможно с использованием сертификата SAN!

SAN (Subject Alternative Names) означает «Альтернативные имена субъектов», и это то, что поможет вам иметь всего один сертификат для нескольких веб-ресурсов.

Например, в этих URL-адресах:

Geekflare.com
Bestflare.com
Usefulread.com
Chandank.com

используется всего один сертификат. И их количество для одного сертификата может быть гораздо больше.

Создание CSR для SAN немного отличается от традиционной команды OpenSSL.

Давайте посмотрим на пример skype.сom, который имеет много SAN в одном сертификате:

Как вы можете видеть  на этом примере – если вы управляете несколькими URL-адресами https, вы можете совершить их консолидацию в единый сертификат SSL с SAN – и сэкономить!

Процедура создания CSR с SAN

– Войдите в сервер, на котором установлен OpenSSL.
– Перейдите в / tmp или создайте любую директорию.
– Создайте файл с именем san.cnf, используя vi (если в Unix) со следующей информацией:

[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
stateOrProvinceName         = State or Province Name (full name)
localityName               = Locality Name (eg, city)
organizationName           = Organization Name (eg, company)
commonName                 = Common Name (e.g. server FQDN or YOUR name)
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1   = bestflare.com
DNS.2   = usefulread.com
DNS.3   = chandank.com

Примечание: раздел alt_names – это тот, который вы должны изменить для дополнительного DNS.

-Сохраните файл и выполните следующую команду OpenSSL, которая будет генерировать файлы CSR и KEY:

openssl req -out sslcert.csr -newkey rsa:2048 -nodes -keyout private.key -config san.cnf

Это создаст sslcert.csr и private.key в текущем рабочем каталоге. Вы должны отправить sslcert.csr подписывающему центру сертифицикации, чтобы он мог предоставить вам сертификат с SAN.

Как проверить CSR для SAN?

Чтобы проверить, содержит ли ваш CSR SAN, который вы указали выше в файле san.cnf:

openssl req -noout -text -in sslcert.csr | grep DNS

Пример:

[root@Chandan test]# openssl req -noout -text -in sslcert.csr | grep DNS
               DNS:bestflare.com, DNS:usefulread.com, DNS:chandank.com
[root@Chandan test]#

Вы также можете использовать онлайн-инструменты для проверки SAN и других параметров.