我需要为多个domians xxxx.com xxxx.net设置https(使用单一通用证书)
我们购买证书的CA要求创建证书签名请求(CSR),但是当我用openssl生成它时 - 它只询问一个名称
如何为多个域制作一个CSR?
答案 0 :(得分:12)
避免使用具有多个CN的证书(如评论中所示),这不是规范(RFC 2818和RFC 6125)说它应该如何工作的方式,虽然它可能在某些客户端应用程序中有效,但它会通常会失败。来自RFC 2818:
如果存在类型为dNSName的subjectAltName扩展名,则必须 用作身份。否则,(最具体的)通用名称 必须使用证书的Subject字段中的字段。虽然 使用Common Name是现有的做法,它已被弃用 鼓励证书颁发机构改为使用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中拥有其中一个(任何)。
(您可能也对this answer感兴趣。)