为多个域设置httpS

时间:2011-12-15 08:33:38

标签: ssl https openssl csr

我需要为多个domians xxxx.com xxxx.net设置https(使用单一通用证书)

我们购买证书的CA要求创建证书签名请求(CSR),但是当我用openssl生成它时 - 它只询问一个名称

如何为多个域制作一个CSR?

1 个答案:

答案 0 :(得分:12)

避免使用具有多个CN的证书(如评论中所示),这不是规范(RFC 2818RFC 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感兴趣。)