如何格式化openssl.cnf文件中的OID主题Alt名称条目

时间:2016-06-25 17:06:32

标签: ssl openssl certificate

我需要将以下SAN添加到证书:

oid:1.2.3.4.5.5

我的正常证书创建过程是生成openssl.cnf文件,然后使用此文件生成csr(证书签名请求),然后使用我自己的CA从csr生成证书。

.cnf文件是一个纯文本文件,其中包含一个部分,描述了我想要包含在csr中的所有SAN以及最终的crt。该部分如下所示:

...
[san]
DNS.1 = foo.bar
DNS.2 = baz.foobar
IP.1 = 1.1.1.1
IP.2 = 2.2.2.2
...

我尝试过以不同的方式插入OID条目:

attempt 1) OID.1 = 1.2.3.4.5.5
attempt 2) DNS.3 = 1.2.3.4.5.5
attempt 3) IP.3 = 1.2.3.4.5.5

1)我在尝试生成证书时收到错误,表明前缀OID无法识别。使用2)和3)我能够生成crt,但是当我把它放到位时,不支持SAN oid:1.2.3.4.5.5。

所以,我想知道在openssl.cnf文件的Subject Alternative Names部分添加这样的和条目的正确语法是什么。

干杯!

2 个答案:

答案 0 :(得分:4)

根据Steffen Ullrich的回答,此版本在一个完整的示例中正确指定了OID标识符:

subjectAltName=@san
[san]
DNS.1=foo.example.com
DNS.2=bar.example.com
RID.1=1.2.3.4.5.5

或者,在一行上进行:

subjectAltName=DNS:foo.example.com,DNS:bar.example.com,RID:1.2.3.4.5.5

当与https://security.stackexchange.com/a/91556结合使用时,在不使用.cnf文件的情况下将-config选项传递给CLI时,此功能特别有用。

答案 1 :(得分:1)

来自the documentation of the config file

  

otherName可以包含与OID关联的任意数据:值应为OID后跟分号和标准ASN1_generate_nconf格式的内容。

     

示例:

subjectAltName=otherName:1.2.3.4;UTF8:some other identifier

或者您拥有SAN部分的示例应该是

subjectAltName=@san
[san]
DNS.1=foo.example.com
DNS.2=bar.example.com
otherName.1=1.2.3.4;UTF8:some other identifier