我需要为多个域名 xxxx.com xxxx.net 设置 https(使用单个通用证书)
我们购买证书的 CA 要求创建证书签名请求 (CSR),但是当我使用 openssl 生成它时 - 它只要求一个名称
如何为多个域制定一个 CSR?
避免使用多个 CN 的证书(如评论中建议的那样),这不是规范的方式(RFC 2818 https://www.rfc-editor.org/rfc/rfc2818#section-3.1 and RFC 6125 https://www.rfc-editor.org/rfc/rfc6125)说它应该可以工作,尽管它可能在某些客户端应用程序中工作,但通常会失败。从RFC 2818 https://www.rfc-editor.org/rfc/rfc2818#section-3.1:
如果存在 dNSName 类型的 subjectAltName 扩展,则必须
被用作身份。否则,(最具体的)通用名称
必须使用证书的主题字段中的字段。虽然
使用通用名称是现有做法,已被弃用并且
鼓励证书颁发机构改用 dNSName。
相反,生成具有多个主题备用名称 (SAN) 的证书(或 CSR)。
如果您使用的是 OpenSSL,请编辑您的openssl.cnf
(或编辑副本)并在相关部分中设置这些属性([req]
and [ 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 http://www.crsr.net/Notes/SSL.html
您可能还想在 CN 中拥有其中一个(任意)。
(您也可能对。。。有兴趣这个答案 https://stackoverflow.com/a/8444863/372643.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)