Генерация CSR запроса для выпуска SSL сертификата с альтернативными именами

Thank you for reading this post, don't forget to subscribe!
С недав­них пор Chrome стал ругать­ся на само­под­пи­сан­ные сер­ти­фи­ка­ты, выда­вая ошиб­ку: «Subject Alternative Names is missing». Когда мы гене­ри­ру­ем стан­дарт­ный запрос с исполь­зо­ва­ни­ем коман­ды openssl
#  openssl req -new -sha256 -nodes -out domain.csr -newkey rsa:2048 -keyout domain.key
нет воз­мож­но­сти задать эти аль­тер­на­тив­ные име­на, а имен­но по ним бра­у­зер и про­ве­рят досто­вер­ность ресур­са. Поэто­му что бы такой ошиб­ки не воз­ни­ка­ло сге­не­ри­ру­ем рас­ши­рен­ный запрос, выгля­дит он при­мер­но так:
# openssl req -new -sha256 -nodes -out domain.csr -newkey rsa:2048 -keyout domain.key -config <(
> cat <<-EOF
> [req]
> default_bits = 2048
> prompt = no
> default_md = sha256
> req_extensions = req_ext
> distinguished_name = dn
>
> [ dn ]
> C=RU
> ST=Moscow
> L=Moscow
> O=Company
> OU=IT
> emailAddress=admin@company.ru
> CN = website.company.ru
>
> [ req_ext ]
> subjectAltName = @alt_names
>
> [ alt_names ]
> DNS.1 = website.company.ru
> DNS.2 = www.website.company.ru
> EOF
> )
Сге­не­ри­ро­ван­ный таким обра­зом запрос так же нор­маль­но пере­ва­ри­ва­ет MS CA, кото­рый в ито­ге выпус­ка­ет пра­виль­ный сер­ти­фи­кат с аль­тер­на­тив­ны­ми именами.