![这个通配符 SSL 证书是从哪里来的?](https://linux22.com/image/653284/%E8%BF%99%E4%B8%AA%E9%80%9A%E9%85%8D%E7%AC%A6%20SSL%20%E8%AF%81%E4%B9%A6%E6%98%AF%E4%BB%8E%E5%93%AA%E9%87%8C%E6%9D%A5%E7%9A%84%EF%BC%9F.png)
我的公司在同一台服务器上托管 example.com 和 sub.example.com,并使用 *.example.com 的通配符 SSL 证书。现在是时候更新我们的证书了,但我们不确定我们是如何获得该证书的。我的老板认为我们并没有支付他们似乎花费的 200 美元。我的前任经理(几天前离开公司)是安装它的人,他不记得他具体做了什么,但他认为他必须生成一些东西,而不仅仅是使用 CA 给我们的文件。
apache 配置有以下几行,并且没有其他未注释的 SSL*File 行:
SSLCertificateFile /usr/local/ssl/cert/example.com.crt
SSLCACertificateFile /usr/local/ssl/cert/intermediate.crt
SSLCertificateKeyFile /usr/local/ssl/private/example.com-wild.key
当我检查 middle.crt( openssl x509 -in intermediate.crt -text -noout
) 时,它根本没有提到我们的组织或网站,并且它的有效期是 2010 年至 2020 年。
Data:
Version: 3 (0x2)
Serial Number: 145105 (0x236d1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=GeoTrust Inc., CN=GeoTrust Global CA
Validity
Not Before: Feb 19 22:45:05 2010 GMT
Not After : Feb 18 22:45:05 2020 GMT
Subject: C=US, O=GeoTrust, Inc., CN=RapidSSL CAb
example.com.crt 是通配符:
Data:
Version: 3 (0x2)
Serial Number: 1113972 (0x10ff74)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=GeoTrust, Inc., CN=RapidSSL CA
Validity
Not Before: Mar 1 09:05:39 2014 GMT
Not After : Mar 4 09:08:54 2015 GMT
Subject: serialNumber=T0nuTvfeaQVtd3dZ30zGI94HrvUsoRjx, OU=GT53409919, OU=See www.rapidssl.com/resources/cps (c)14, OU=Domain Control Validated - RapidSSL(R), CN=*.example.com
我不懂 SSL 基础设施,所以我想我有一堆相关问题。如果它们最终完全不相关,我深表歉意;我不知道我不知道什么。
如果我们没有为此支付 200 美元或其他费用,我们如何获得通配符证书?(如果我们可以仅使用 middle.crt 创建它,我会感到有些惊讶,因为这样我们就可以一直生成它们直到 2020 年。但 /usr/local/ssl 中没有其他文件,/etc/pki/tls 中自 2013 年以来没有任何修改过的内容,那么我们还能使用什么呢?如果我的老板只是记错了,我们确实支付了 200 美元或其他费用,我也会感到有些惊讶,但这对我来说似乎是可能的。)
我们从哪里获得 middle.crt?
middle.crt 有什么用?我有一个自签名通配符证书,在我们的测试服务器上运行良好(除了它是自签名的),没有 SSLCACertificateFile 行;我们购买了一个保护 example.com 的非通配符证书,我已设法使用 VirtualHost 安装了它,没有 SSLCACertificateFile,我们正在获取 sub.example.com 的证书,我打算以相同的方式安装它。非自签名通配符证书是否需要 SSLCACertificateFile?
我生成自签名证书的方式感觉可能相关:
openssl req -nodes -new -keyout private/example.com.key -out certs/intermediate.csr openssl x509 -req -days 365 -in certs/intermediate.csr -signkey private/file.key -out certs/example.com.crt
但在这种情况下,我不需要在 apache 配置中提及 middle.csr,并且 middle.csr 不能
openssl x509
像 middle.crt 文件那样被检查。
答案1
How did we get the wildcard certificate, if we didn't pay $200 or whatever for it?
比您现在找到的 CA 更便宜吗?我相信您会找到价格更低的经销商。
Where did we get intermediate.crt? What does intermediate.crt do?
您从 CA 获得证书。CA 通常不直接使用其根证书签署证书,而是通过中间证书签署。此中间证书为客户签署证书,然后由根证书签署,根证书受浏览器和操作系统信任。这称为证书链,也是 Apache 有单独参数SSLCACertificateFile
提供从网站证书到 CA 证书的此链的原因。
我有一个自签名通配符证书,它在我们的测试服务器上运行良好(除了它是自签名的),没有 SSLCACertificateFile 行;
那么你测试的浏览器也会信任中间证书,但你不能依赖它。你也可以使用SSLLabs ssl测试工具来检查您的链是否不完整或者错过中间部分(在那里称为额外下载)。
非自签名通配符证书是否需要 SSLCACertificateFile?
不,因为在这种情况下没有证书链,请参见上文。
答案2
根据您证书和中间文件的详细信息,似乎可以清楚地看出,您的前任经理确实在一年前从 RapidSSL 支付了通配符证书的费用。他必须生成的可能是提交给 RapidSSL 的证书请求。