On 2015-11-25, Oleksandr Gavenko wrote: > Пробовал задавать патерны DNS: через переменную окружения, добавив настройку в > блок "[usr_cert]": > > subjectAltName=${ENV::sanvar} > > Но по: > > $ env sanvar='DNS=myvps.com' openssl ca -days 1000 -config openssl.cnf > -cert ca-root-cert.pem -keyfile ca-root-key.pem -out http-server-cert.pem -in > http-server-cert.csr > > получал ошибку: > > Error Loading extension section usr_cert > 139621097580176:error:0E06D06C:configuration file > routines:NCONF_get_string:no value:conf_lib.c:324:group=CA_default > name=email_in_dn > 139621097580176:error:2207507C:X509 V3 routines:v2i_GENERAL_NAME_ex:missing > value:v3_alt.c:531: > 139621097580176:error:22098080:X509 V3 routines:X509V3_EXT_nconf:error in > extension:v3_conf.c:95:name=subjectAltName, value=DNS=myvps.com > > Эксперименты показали что такая запись работает: > > subjectAltName = email:copy,DNS:${ENV::sanvar} > > Я полагаю что подстановка выполняется после парсинга файла и вводить > синтаксическую структуру через подстановку переменной - нельзя. Хотя в блогах > есть примеры, в которых приводится указанная конструкция - т.е. это зависит от > версии openssl. > > Но т.к. заранее не знаешь число DNS: параметров - лучше работать через трюк с > "<(...)" в Bash.
Затупил, в синтаксисе напутал, если поставить знак ":" - то работает: $ env sanvar='DNS:myvps.com,DNS:*.myvps.com' openssl ca ... -- Best regards!