Рейтинг:1

Как подписать свои собственные SSL-сертификаты, чтобы они распространялись на доменные имена с www и без www?

флаг in

При использовании коммерческого центра сертификации создание csr для общего имени www.mysite.com и отправка его им приведет к выдаче сертификата, который работает для обоих www.mysite.com и mysite.com.

Запрос на подпись — это запрос одного имени — просто www.mysite.com, поэтому на уровне csr ничего особенного не происходит:

openssl genrsa -des3 -out mysite.com.key 4096

openssl req -new -key mysite.com.key -out mysite.com.csr
обычное имя, т.е. ваше имя: www.mysite.com

Но то, что возвращается от коммерческого центра сертификации, — это сертификат, который работает как с www, так и без www.

Вопрос: Как я могу взять csr только для www.mysite.com и, используя openssl с моим собственным центром сертификации, выпустить сертификат, который работает для обоих www.mysite.com и mysite.com, как это делают коммерческие компании?

Я знаю, что вы можете изменить csr, чтобы добавить несколько доменов с помощью файла конфигурации, но при использовании коммерческой компании в csr требуется только версия www. Нет необходимости в многодоменных конфигурационных файлах.

Изменяют ли коммерческие центры сертификации представленный csr, чтобы включить обе версии? Или в команде подписи есть флаг, который делает www по желанию?

Могу ли я изменить эту команду, чтобы добавить версии с www и без www без изменения csr?

openssl x509 -req -days 365 -in mysite.com.csr -CA Authority.crt -CAkey Authority.key -set_serial 12345 -out mysite.com.crt

Или есть простой способ добавить второй домен в csr без файл конфигурации?

openssl req -new -key mysite.com.key -out mysite.com.csr
обычное имя, т.е. ваше имя: mysite.com, www.mysite.com
Рейтинг:2
флаг jp

CSR не нужно изменять. Сертификат не является CSR, не является копией CSR и не создается путем подписания CSR. Сертификат — это новый объект, который содержит некоторый данные скопировано из CSR и некоторые новые данные.

В частности, «коммерческие» центры сертификации (среди прочих LetsEncrypt и CACert не берут денег, поэтому на самом деле они не являются коммерческими) установить Расширение SubjectAlternativeName (SAN) (в сертификате) для поддержки нескольких имен «DNS» (он может поддерживать и другие типы имен, но здесь вам это не нужно). Атрибут CommonName в имени субъекта не должен содержать несколько доменных имен, потому что они не могут быть сопоставлены.

В то время как OpenSSL может использовать SAN несколькими способами, используя openssl x509 -req -CA/CAkey делает это проще: единственный вариант — указать -extfile который содержит нужные настройки. Это может быть фактический файл, который вы явно создаете, или в Unix в некоторых оболочках вы можете использовать <(команда) синтаксис для создания скрытого временного файла. Видеть:
Chrome не доверяет самоподписанному сертификату
Рабочий стол Chrome и Android отказываются принимать доверенный самозаверяющий сертификат
https://stackoverflow.com/questions/61125319/node-js-self-signed-certificate-is-still-showing-as-not-trusted-in-my-browser
и многое другое, связанное с каждым. (Многие используют Chrome, потому что Chrome был основным причина использовать SAN, но методы реализации SAN не зависят от причины.)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.