SSL 证书与 Apache 的混淆

SSL 证书与 Apache 的混淆

我创建了一个自签名。我访问了我的网站,发现它不受信任(在 FF 和 IE 中)。接受它后,我在 IE 中看到一条消息,说它是为不同的域签名的。想起来,我不记得曾经写过我将使用此证书的域。

我确信我在其他地方见过此错误。如何正确地自行签署证书?

答案1

如果您创建证书时使用的 CN(通用名称)与您网站的名称不同,您将收到有关该证书已为不同域名签名的错误。

所以如果你的网站叫做

myselfsignedsite.whatever.com

在证书创建过程中要求输入 CN 时输入该值。这应该会消除有关域的错误。

但它仍然会抱怨它不受信任,除非你让它由一个受信任的 CA 签名。

答案2

URL 的主机名必须与Common Name证书主题的 (“CN”) 匹配。生成证书签名请求 (CSR) 时,OpenSSL 会提示您输入国家/地区代码、州或省、地区、组织、组织单位、通用名称和电子邮件地址。请务必输入服务器的主机名作为通用名称。CN 也可以是通配符 ( *.example.net)。

还可以生成对多个离散主机名(不是通配符)有效的证书,在这种情况下,主机名也可以与subjectAltName证书的其中一个匹配。有两种方法可以使用 OpenSSL 创建此类证书。

最简单的方法是让证书颁发机构将其放入签名的证书中。CA 的openssl.cnf需求

[ usr_cert ]
subjectAltName=DNS:host1.example.com,DNS:host2.example.org

另一种方法是将 放入subjectAltNameCSR 中并让 CA 遵守它。在请求者的 中openssl.cnf

[ v3_req ]
subjectAltName=DNS:host1.example.com,DNS:host2.example.org

在 CA 中openssl.cnf

[ usr_cert ]
subjectAltName=email:copy

无论哪种方式,生成的证书都应该对三个主机名有效(host1.example.com,host2.example.org 和主题的 CN)。

相关内容