В общем хочется 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
Вроде даже подтянуло сертификат
Но ругается на CN как понимаю
NET::ERR_CERT_COMMON_NAME_INVALID
Который у меня
СN=*.loc