我正在在我的centos服务器上构建证书颁发机构。根据{{1}}的《 OpenSSL Cookbook》(很棒的东西),我已经完成了设置。书中所解释的概念和过程非常简单,就像魅力一样。但是,我觉得它有点过时了,Chrome浏览器将行为更改为要求使用者替代名称,否则即使证书完全有效,它也会向浏览器发出警告。
阅读https://www.feistyduck.com/books/openssl-cookbook/
的文档后,我可以理解,我需要将其包含在根CA和sub-ca(中间证书颁发机构)的conf文件中。
现在我要做的是将commonName用作SAN。这意味着我不希望对SAN进行硬编码,而要获取从CSR获得的CommonName值,并将其用作SAN。 我应该在conf文件中放入什么来实现此目的? 我试图把 subjectAltName = $ commonName 并告诉我这不是定义SAN的有效方法。
这是我实际的conf文件
https://www.openssl.org/docs/man1.0.2/apps/x509v3_config.html#Subject-Alternative-Name
答案 0 :(得分:0)
不幸的是,OpenSSL conf文件一点也不复杂,并且不可能引用以前声明的名称。
我认为通常的方法是编写一个短脚本,该脚本可以填充模板conf文件。当然,这是我过去所做的。
答案 1 :(得分:0)
此答案可能对https://security.stackexchange.com/a/91556有帮助。正如@Jon已经提到的。只有在模板的帮助下才有可能。 确保您验证了输入。否则,有人可以在DNS名称中插入新行。 解决该问题的另一种方法是改用https://github.com/cloudflare/cfssl或https://github.com/google/easypki。