鉴于 SSL 证书和密钥可以链接的性质,我(自己)是否可以根据为通配符子域名颁发的主域证书和密钥为子域名生成证书?
这里的做法是,我必须为一个子域设置一个新的完全不同且远程(物理上)的服务器,并且我想尽量减少主证书和密钥被劫持的风险,以防万一。
我可以使用 openssl 实用程序提供我的主域、通配符证书和密钥来执行此操作吗?还是应该再次由 CA 重新签发?如果可以,怎么做?
谢谢
答案1
首先,我同意到处散布通配符证书是个坏主意。最佳做法是使用单独的证书(当域名位于不同的服务器或虚拟主机上时)或 SAN 证书(当它们都位于同一位置时)。
但是,您不能使用现有证书来签署子域的证书。SSL 证书通常会对其使用方式有所限制。如果您运行openssl x509 -in /path/to/cert.pem -noout -text
,您将看到类似以下内容的部分
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
这意味着该证书只能用于对 Web 服务器或客户端进行身份验证。它不能用于签署其他证书(或者,至少没有客户端会信任由此证书签署的证书)。
您无法这样做的原因是,CA 目前无法颁发仅可用于在给定域内签署其他证书的证书。因此,如果受信任的 CA 向您颁发可用于签署其他证书的证书,则实际上会赋予您冒充互联网上任何其他网站的能力。这很糟糕,这就是他们不这样做的原因。