X509證書
我正在研究 X509 證書結構,這裡是一個用於生成證書的 OpenSSL 配置文件。(“sth”只是意味著實際的字元串被刪除)
[ req ] prompt = no distinguished_name = req_distinguished_name x509_extensions = v3_ca [ req_distinguished_name ] countryName = sth localityName = sth organizationalUnitName = sth commonName = sth emailAddress = sth [ v3_ca ] basicConstraints = critical, CA:TRUE, pathlen:1 keyUsage = critical, keyCertSign
以下是我的問題:
- req_distinguished_name 是什麼意思,它是如何使用的?
- basicContraints 中的 critical 和 pathlen 是什麼意思?
basicConstraints = critical, CA:TRUE, pathlen:1
- keyUsage 中的關鍵是什麼意思?
所有答案都可以在定義 X.509 證書格式的RFC 5280中找到。
1. 是什麼
req_distinguished_name
意思,如何使用?看起來 OpenSSL 正在以
.ini
格式吐出這個,所以我猜distinguished_name = req_distinguished_name
意味著可以在
[req_distinguished_name]
下面的部分中找到所需的專有名稱資訊。相似地,x509_extensions = v3_ca
意味著可以在該
[v3_ca]
部分中找到擴展內容。在 X.509 中,專有名稱 (DN) 是持有此證書的個人或伺服器的唯一標識符。DN 的結構與 URL 中的域名非常相似,以國家程式碼開頭,一直到人或伺服器的名稱。
2. basicContraints 中的 critical 和 pathlen 是什麼意思?
basicConstraints = critical, CA:TRUE, pathlen:1
基本約束擴展標識證書的主題是否為 CA,以及包含此證書的有效證書路徑的最大深度。
所以
CA:TRUE, pathlen:1
意味著這是一個自簽名的根 CA,它只能頒發最終使用者證書而不是從屬 CA,因為他們頒發的任何證書的 pathlen > 1。3. X.509證書中的critical是什麼意思?
證書中的每個擴展都被指定為關鍵或非關鍵。如果使用證書的系統遇到它無法辨識的關鍵擴展或包含它無法處理的資訊的關鍵擴展,則必須拒絕證書。一個非關鍵擴展如果不被辨識可以被忽略,但如果它被辨識則必須被處理。
所以基本上,
critical
意味著這個數據中的錯誤應該被認為是致命的,非關鍵意味著可以忽略錯誤。