我需要为多个域名 xxxx.com xxxx.net 设置 https(使用单个通用证书)
我们购买证书的 CA 要求创建证书签名请求 (CSR),但是当我使用 openssl 生成它时 - 它只要求一个名称
如何为多个域制作一份 CSR?
避免使用具有多个 CN 的证书(如评论中所建议的那样),这不是规范(RFC 2818和RFC 6125)所说的它应该如何工作,虽然它可能在某些客户端应用程序中工作,但它通常会失败。来自RFC 2818:
如果存在 dNSName 类型的 subjectAltName 扩展,则必须将其用作身份。否则,必须使用证书主题字段中的(最具体的)通用名称字段。尽管使用通用名称是现有的做法,但它已被弃用,并且鼓励证书颁发机构使用 dNSName 代替。
相反,生成具有多个主题备用名称 (SAN) 的证书(或 CSR)。
如果您使用的是 OpenSSL,请在相关部分(和)中编辑您的openssl.cnf
(或编辑副本)并设置这些属性:[req]
[ v3_req ]
[req]
req_extensions = v3_req
[v3_req]
subjectAltName=DNS:www.example1.com,DNS:www.example2.com,DNS:www.example3.com
这里还有一个很好的技巧来使用环境变量(而不是在配置文件中修复它):http ://www.crsr.net/Notes/SSL.html
您可能还希望在 CN 中拥有其中一个(任何)。
(您可能也对此答案感兴趣。)