如何使用一个 SSL 证书保护根域和通配符子域?

Que*_*low 5 https openssl ssl-certificate

我试图生成自签名证书,以确保这两个example.com*.example.com。看看这个这个问题的答案,似乎有同样数量的人同意和不同意这是否可以做到。但是,来自认证机构的网站似乎表明可以这样做。

目前,这些是添加到我的 openssl 配置文件中的更改:

[req]
req_extensions = v3_req

[req_distinguished_name]
commonName = example.com

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = example.com
DNS.2 = *.example.com
Run Code Online (Sandbox Code Playgroud)

我尝试了上述配置并生成了证书。导航到 时https://example.com,它会产生通常的警告,表明证书是“自签名”的。接受后,我导航到https://abc.example.com并产生一个额外的警告,说该证书仅对example.com.

证书详细信息仅example.com在证书层次结构中列出,不存在任何通配符子域的迹象。

我不确定这是由于配置错误还是通用名称应该有通配符或无法做到这一点。

进一步更新:

这是我通过使用 openssl 查看证书请求得到的结果:

# openssl req -text -noout -in eg.csr
Certificate Request:
 Data:
  Version: 0 (0x0)
  Subject: C=xx, L=Location, O=Example Pte Ltd, CN=example.com/emailAddress=admin@example.com
  Subject Public Key Info:
  Public Key Algorithm: rsaEncryption
  Public-Key: (1024 bit)
  Modulus:
   00:c1:c7:0d:7e:b7:48:d3:b8:9a:5a:88:db:c2:91:
   ...
  Exponent: 65537 (0x10001)
  Attributes:
  Requested Extensions:
   X509v3 Basic Constraints: 
    CA:FALSE
   X509v3 Key Usage: 
    Digital Signature, Non Repudiation, Key Encipherment
   X509v3 Subject Alternative Name: 
    DNS:example.com, DNS:*.example.com
  Signature Algorithm: sha1WithRSAEncryption
   4d:4a:8a:d9:32:e2:31:c5:6c:8c:6a:2a:a6:c3:17:63:dd:a4:
   ...
Run Code Online (Sandbox Code Playgroud)

这就是我通过查看证书得到的:

# openssl x509 -in eg.crt -noout -text
Certificate:
 Data:
  Version: 1 (0x0)
  Serial Number:
   d0:9e:b3:d5:83:b5:a1:0d
  Signature Algorithm: sha1WithRSAEncryption
  Issuer: C=xx, L=Location, O=Example Pte Ltd, CN=example.com/emailAddress=admin@example.com
  Validity
   Not Before: Sep 30 10:16:34 2012 GMT
   Not After : Sep 30 10:16:34 2013 GMT
  Subject: C=xx, L=Location, O=Example Pte Ltd, CN=example.com/emailAddress=admin@example.com
  Subject Public Key Info:
   Public Key Algorithm: rsaEncryption
   Public-Key: (1024 bit)
   Modulus:
    00:c1:c7:0d:7e:b7:48:d3:b8:9a:5a:88:db:c2:91:
    ...
  Exponent: 65537 (0x10001)
  Signature Algorithm: sha1WithRSAEncryption
   3d:98:0d:f1:1b:06:27:63:09:14:4d:41:37:49:eb:70:15:1c:
   ...
Run Code Online (Sandbox Code Playgroud)

通过浏览器查看时,证书字段应该包含主题备用名称的扩展名。但它不在那里。如果确实可以实现,我想在生成证书时可能会出现一些问题。

Sha*_*den 2

是的,效果很好。您通常会在公共证书颁发机构颁发的通配符中看到通配符作为证书的主题,并将基域作为主题备用名称,但我相信相反的安排也适用。

查看您生成的证书 - alt_names 是否正确合并到证书中?