我创建了一个自签名。我访问了我的网站,发现它不受信任(在 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
另一种方法是将 放入subjectAltName
CSR 中并让 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)。