0
甲證書是使用下面的OpenSSL命令生成:OpenSSL的命令包括 「basicConstraints」 擴展
openssl req -new -x509 -keyout server.key.pem -out server.crt.pem -config /etc/ssl/openssl.cnf -extensions cust_const
相應的CSR使用命令生成:
openssl x509 -x509toreq -in server.crt.pem -signkey server.key.pem -out server.csr -extensions cust_const
conf文件(OpenSSL的。 cnf)有下面提到的條目。
[ cust_const ]
basicConstraints = CA:FALSE
問題是生成的CSR不包括basicConstraints
擴展名。
如果我們已經有basicConstraints
的證書,basicConstraints
如何納入CSR?
'x509 -x509toreq'使用'X509_to_X509_REQ'這個非常基本的例程,它只設置版本,主題和pubkeyinfo。你爲什麼生成一個虛擬證書*然後*一個CSR?如果你想使用虛擬證書,你不需要CSR,如果你想用CSR來獲得(也許是真實的)證書,你不需要虛擬證書。沒有*'-x509'的'req -new' *可以生成一個包含擴展名的CSR(命令行中的'-reqexts'或configfile中的'req_extensions') - 儘管CA通常不會將CSR的擴展名放在cert中。 –
在我們的實施中,我們希望首先生成證書,然後生成CSR。證書中包含「basicConstraints」擴展,但不包含在CSR中。有沒有辦法從證書中獲得CSR的擴展? – user1334227
你'想'做到這一點,但沒有理由爲什麼,我看不出任何有用的理由。如果你堅持要做一些無用的事情,你可以使用你在證書中放入的相同數據來生成CSR(但實際上並沒有從證書中拿到證書),或者如果你堅持要從證書中拿到證書,你必須寫一個程序來做:所有需要的'PEM_ *'例程和一些'X509_ *'和'X509_REQ_ *'都有手冊頁;缺失的通常遵循相同的模式,並且在'.h'文件中都有C級細節。 –