
Мне интересно, возможно ли создать wildcard-сертификат с префиксом.
Я знаю, что это *.example.com
покроет все на первом уровне (например, one.example.com
, two.example.com
, three-four.example.com
, и т.д.), но не покроет, another.one.example.com
потому что это 2 уровня.
Мне нужен подстановочный сертификат, который распознает префикс; поэтому это будет www.*.example.com
.
Это означает, что www.one.example.com
, , www.two.example.com
, www.three.example.com
и т.д. будут работать правильно.
Возможно ли это, и есть ли поставщик сертификатов, который может это сделать?
решение1
Мне нужен wildcard-сертификат, который распознает префикс; так что это будет
www.*.example.com
. Это значит,www.one.example.com
,www.two.example.com
,www.three.example.com
, и т. д. будут работать правильно.
Возможно ли это, и есть ли поставщик сертификатов, который может это сделать?
Нет. Согласно правилам форума браузеров CA,RFC2818иRFC6125Разрешен только один подстановочный знак и только в самой левой метке. Это означает, что нет ни одного www.*.example.com
, ни *.*.example.com
другого. Вместо этого вам нужно добавить все необходимые домены в часть альтернативного имени субъекта сертификата, но у вас может быть несколько записей и вы можете использовать подстановочные знаки, например *.sub1.example.com
, *.sub2.example.com
и т. д.
Такие сертификаты с несколькими именами wildcard распространены (посмотрите на сертификат для Facebook), что означает, что есть поставщики сертификатов, которые предлагают эти сертификаты. Но они будут стоить дороже, чем другие.
решение2
Создайте .cnf
-файл, как показано ниже, который вы используете с openssl req -new -out example.com.csr -key example.com.key -config example.com.cnf
. Вы можете создать ключевой файл, используя
openssl genrsa -out example.com.key 4096
Файл example.com.cnf
:
[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name
[req_distinguished_name]
commonName = example.com
[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.2 = *.example.com
решение3
Возможно, вам нужно использовать SubjectAltName.
Взгляни на:http://wiki.cacert.org/FAQ/subjectAltName