Ninazu
@Ninazu

Как создать самоподписный сертификат сразу на несколько уровней поддоменов?

В общем хочется wildcard сертификат для всех уровней поддоменов (названия уровней и их количество не известно)

Тоесть чтоб он подхватывал все подобные комбинации, без надобности их перечисления.
73.test.loc
73.admin.test.loc
73.abc.loc
56.abc.loc
56.admin.test.loc
72.x.y.loc
....


#Создаем корневой сертификат, если еще не создан
if [ ! -f rootCA.pem ]; then
  openssl genrsa -out rootCA.key 2048
  openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
fi

#Cоздаем device.key, если еще не создан
if [ -f device.key ]; then
  KEY_OPT="-key"
else
  KEY_OPT="-keyout"
fi

#Cоздаем домен
DOMAIN='loc'
COMMON_NAME=${2:-$DOMAIN}
SUBJECT="/C=CA/ST=None/L=NB/O=None/CN=$COMMON_NAME"
NUM_OF_DAYS=999
openssl req -new -newkey rsa:2048 -sha256 -nodes $KEY_OPT device.key -subj "$SUBJECT" -out device.csr
cat v3.ext | sed s/%%DOMAIN%%/"$COMMON_NAME"/g > /tmp/__v3.ext
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days $NUM_OF_DAYS -sha256 -extfile /tmp/__v3.ext


Шаблон для сертификата

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = %%DOMAIN%%
DNS.2 = *.%%DOMAIN%%
DNS.3 = *.*.%%DOMAIN%%


rootCA.pem в Chrome добавил.

В Apache указал
SSLCertificateFile    /home/ninazu/loc.crt
    SSLCertificateKeyFile /home/ninazu/device.key


Вроде даже подтянуло сертификат
5cc87f84bbab8580407499.png

Но ругается на CN как понимаю
NET::ERR_CERT_COMMON_NAME_INVALID


Который у меня
СN=*.loc
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
CityCat4
@CityCat4 Куратор тега Цифровые сертификаты
//COPY01 EXEC PGM=IEBGENER
Апач кладет на SAN преогромный болт и берет имя сайта из CN. Если оно там не то - все, сертификат неподходящий.
Но Вам-то что? Самопальных сертификатов хоть сколько можно понаделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы