openssl - Adding multiple DNS to CSR with Openssl via command prompt
问题描述
I need help understanding how to create a CSR with multiple DNS in it. I am creating csr using windows command prompt
Originally I use
Openssl req -new -newkey rsa:2048 -nodes -keyout -test.key -out test.csr
Which create csr with 1 common name.
I search online and the code I being trying are
openssl genrsa -out test.key
openssl req -new -key test.key -out test.csr -config csr.conf
openssl x509 -req -days 365 -in test.csr -signkey test.key -out test.crt -extensions req_ext -extfile csr.conf
But, I'm sure it's obvious to y'all, the -config command from second line doesn't work. Saying it can't find the following file config file.
I'm very new to all of this. And I am doing csr because it's part of my internship. Doesn't help that the no one knows how to do it. I've tried searching online for half a day and I still can't find what's wrong.
解决方案
(元)这不是关于编程问题或问题,很可能作为题外话被关闭;尽管在过去十年的早期,stackoverflow 的范围相当广泛,但近年来,由于其他主题的其他 stackexchange 站点已经创建,并且大量非编程问题使得该站点更难用于其预期目的,并且观众对话题性变得更加严格。
CSR 和 X.509 证书中的 Subject 字段只能有效地包含 CommonName 中的一个 DNS 名称,至少与 TLS 常用的一样,即以前称为 SSL的
艺术家协议。从技术上讲,RDN 可以有多个值,但规范规定只使用第一个值,而忽略所有其他值。如果这是 TLS 以外的证书,它可能允许名称属性的其他组合,在这种情况下,您应该参考该协议或应用程序的相关规范。对于 TLS 和其他一些用途,您可以改为将多个 DNS 名称放在SubjectAlternativeName 扩展 (SAN)中,如RFC 6125中的 TLS和 HTTPS 特别是RFC 2818中所述。
可以将 SAN 扩展(或技术要求的扩展)放入 CSR。在使用 OpenSSL 的正确设计的系统上,手册页中对此进行了描述,但 Windows 不提供手册页,因此您需要查看在线版本,
req(1)
其中描述了一般的配置文件以及x509v3_config(5)
具体描述 SAN的链接.但是由于您使用
openssl x509 -req
的是从 CSR 创建证书,因此这完全没用,因为x509 -req
不使用 CSR 的任何扩展。相反,如果您想要一个包含 DNS 名称的 SAN 证书,您需要创建具有此扩展名的证书,而不是 CSR。最简单的方法是同时使用req
这两种方法-new
,-x509
它有效地结合了您的第二步和第三步:openssl req -new -key test.key -x509 -days 365 -config $file -out test.crt
在这种情况下,配置文件,如上面链接的手册页中所述,可以指定主题名称和
x509_extensions
可以包括 SAN的扩展名(使用该项目)。您也可以像第一个示例中那样包含第一步 (genrsa
):openssl req -new -newkey rsa:2048 -nodes -keyout test.key -x509 -days 365 -config $file -out test.crt
推荐阅读
- python - 改变用户输入
- python - 有没有办法自动更改 tkiner 窗口的大小以适应小部件?
- javascript - 动态流处理 Node.js
- javascript - 在 Javascript 中运行时(动态)在对象内部创建对象
- python - 导入 sympy 时出现 ImportError
- java - 使用 Java 方法时如何创建不同的延迟?
- java - 自定义 ArrayAdapter 过滤时不更新
- html - 图像显示在本地,但在托管时不显示
- java - JPA 保存 50k+ 条记录需要更多时间
- javascript - 如何在反应和打字稿中使用 context.provider 设置状态?