我想知道是否可以创建带有前缀的通配符证书。
我知道这*.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
我需要一个可以识别前缀的通配符证书;所以应该是
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
。
这种带有多个通配符名称的证书很常见(看看 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。