首页
学习
活动
专区
圈层
工具
发布

X509证书
EN

Cryptography用户
提问于 2016-05-26 20:45:06
回答 3查看 6K关注 0票数 2

我正在研究X509证书结构,这里是一个生成证书的OpenSSL配置文件。(“某物”只是指实际的字符串被移除)

代码语言:javascript
复制
[ 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中,批判性和路径性意味着什么? basicConstraints = critical, CA:TRUE, pathlen:1
  • 在keyUsage中临界意味着什么?
EN

回答 3

Cryptography用户

回答已采纳

发布于 2016-05-26 21:10:51

所有答案都可以在定义X.509证书格式的RFC 5280中找到。

1. req_distinguished_name是什么意思?是如何使用的?

看起来OpenSSL正在以.ini格式吐痰,所以我猜

代码语言:javascript
复制
distinguished_name     = req_distinguished_name

意味着所需的可分辨名称信息可以在下面的tho[req_distinguished_name]部分中找到。类似地,

代码语言:javascript
复制
x509_extensions        = v3_ca

这意味着可以在[v3_ca]部分找到扩展内容。

在X.509中,区分名称(DN)是持有此证书的个人或服务器的唯一标识符。DNs的结构与URL中的域名非常相似,从国家代码开始,一直到个人或服务器的名称。

2.关键和路径在basicContraints中意味着什么?basicConstraints = critical, CA:TRUE, pathlen:1

RFC 5280节4.2.1.9.基本约束说:

基本约束扩展标识证书的主题是否为CA,以及包含此证书的有效证书路径的最大深度。

因此,CA:TRUE, pathlen:1意味着这是一个自签名的根CA,它只能发出最终用户证书,而不是从属CA,因为它们发出的任何证书都会有路径end> 1。

3. X.509证书中的关键含义是什么?

RFC 5280第4.2节.证书扩展说:

证书中的每个扩展都被指定为关键的或非关键的.使用证书的系统如果遇到它不识别的关键扩展或包含它无法处理的信息的关键扩展,则必须拒绝证书。非关键扩展如果不被识别,则可能被忽略,但如果被识别,则必须进行处理。

因此,基本上,critical意味着这些数据中的错误应该被认为是致命的,非关键的意味着错误可以被忽略。

票数 9
EN

Cryptography用户

发布于 2016-05-26 21:09:57

req_distinguished_name是什么意思?它是如何使用的?

这是将在您的证书请求中使用的区分名称(DN)。这通常是一个描述公钥所有者的字符串,通常在这里可以看到诸如公共名称(CN)和电子邮件地址之类的内容。此外,您还可以在这里放置区域和组织识别信息(例如组织名称(O)、组织单位(OU)、国家、州和城市)。

在basicContraints中,批判性和路径性意味着什么?

关键的意思是:"100%确保您强制执行这个规则!“,也就是说,如果实现不理解这个扩展的含义,它应该会失败验证。路径控制证书颁发路径的深度,如果设置了pathlen=0,则只能颁发终端实体证书(或无效CA ),例如,如果您拥有中间CA,只有每个CA都应该颁发此类证书,或者您已经出售了中间CA,但不希望客户自行颁发CA证书,则这被认为是一项功能。本质上,pathlen计算当前CA证书和end实体证书之间CA的最大数量。也就是说,在pathlen为1的情况下,在当前CA和end实体之间仍然可以有一个中间CA,但是CA只能发出end实体证书。(在这个答案的前一个版本中,感谢梅花让我意识到一个错误 )。

在keyUsage中临界意味着什么?

和上面一样。"100%确保强制执行此规则!“,即实现必须强制执行密钥使用,如果它不理解/不知道扩展验证必须失败,例如,密钥仅用于执行相关证书允许的内容,任何其他密钥使用也应被与该密钥的签名/加密数据交互的其他实现拒绝。在您的情况下,这意味着所颁发的证书对数据的签名或加密无效,因此任何兼容的应用程序都将拒绝将根据该证书签名的数据加密为“无效”。

票数 3
EN

Cryptography用户

发布于 2017-10-04 13:15:29

Mike和SEJPM的现有答案都很好,但对于pathlen=1的含义都是错误的。使用pathlen=1,您仍然能够向can颁发证书,而使用pathlen=0,您只能颁发终端实体证书。这是堆栈溢出的另一个答案很好地解释了这个问题。

票数 3
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/35608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档