簡體   English   中英

使用 openssl 創建 csr 文件時未獲得版本 3

[英]Not getting version 3 when creating a csr file with openssl

我被要求創建一個 csr(證書簽名請求),然后將其發送給將創建證書的實體。

我的問題是,我能夠創建私鑰和 csr,但我必須使用版本 3 創建它。我不知道是否可行,因為就像我嘗試的那樣,我只能得到版本3 只要我自己創建一個證書。 但不適用於證書請求。

這就是我生成私鑰的方式:

openssl ecparam -genkey -name prime256v1 -out private.pem

我的配置文件(x509Version3.cnf)是這樣的:

[ req ]
prompt              = no
encrypt_key         = no
default_bits        = 2048
distinguished_name  = req_distinguished_name
x509_extensions     = v3_req

[ req_distinguished_name ]
commonName          = 434C800000012A

[ v3_req ]
keyUsage            = critical, digitalSignature
# keyUsage          = critical,keyAgreement
basicConstraints    = CA:FALSE

然后為了獲得我正在使用的證書請求:

openssl req -new -key private.pem -out certificateRequest.pem -config x509Version3.cnf -reqexts v3_req

這會生成一個證書請求,但是當我檢查它的內容時,例如這個 web ,我得到:

在此處輸入圖像描述

但是如果我自己創建證書,使用命令:

openssl req -x509 -new -key private.pem -out certificate.pem -days 365 -config x509Version3.cnf -extensions v3_req

我得到了我期待的那個: 在此處輸入圖像描述

我做錯了什么? 我一直在檢查 openssl 證書請求的參數,它們看起來都是正確的並且按預期進行。

是否可以在證書請求中使用版本 3? 或者只是創建了一個證書?

非常感謝!

目前,PKCS#10 CSR 只定義了一個版本,即版本 1(編碼為 0)。 您在 CSR 轉儲中看到的內容是正確的,符合設計和預期。

簽名證書是一個非常不同的 object(不是 PKCS#10),它有三個版本:v1(非常舊,只支持必填字段,不允許擴展),v2(很少使用)和 v3,當前的 X.509 證書格式支持證書擴展。

也就是說,您生成 V1 請求並在簽名后收到 V3 X.509 證書。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM