Certificate 如何选择X.509公司证书的名称?

Certificate 如何选择X.509公司证书的名称?,certificate,code-signing,x509certificate,naming,x509,Certificate,Code Signing,X509certificate,Naming,X509,我想创建一个证书来签署我们公司的软件。我用于此目的的工具(来自Java SDK)需要以下格式的可分辨名称: CN=commonName, OU=organizationalUnit, O=organizationName, L=city, S=state, C=countryCode 如果我只是想为我的公司(而不是其中任何特定的人)申请一份证书,我应该使用吗 CN=MyCompany, C=AT 或 作为尊贵的名字?后者更有意义(因为MyCompany是组织的名称),但我不知道将common

我想创建一个证书来签署我们公司的软件。我用于此目的的工具(来自Java SDK)需要以下格式的可分辨名称:

CN=commonName, OU=organizationalUnit, O=organizationName, L=city, S=state, C=countryCode
如果我只是想为我的公司(而不是其中任何特定的人)申请一份证书,我应该使用吗

CN=MyCompany, C=AT


作为尊贵的名字?后者更有意义(因为MyCompany是组织的名称),但我不知道将commonName留空是否“正确”。

commonName也可以保留您的公司名称。或者您可以将其保留为空-这并不重要,因为标准对SubjectName中的元素数量没有要求,也没有CommonName格式的标准


然而,你的整个任务似乎没有多大意义。您将创建一个自签名证书来对软件进行签名,但没有验证器会接受这样的签名。人们希望您的软件使用授权认证机构颁发的证书进行签名

通常的做法是将FQDN放在CN中。@Stefan这仅适用于SSL/TLS中使用的证书(即使在那里,CN也可以为空,域名也可以放在SubjectAlternativeName扩展名中)。对于代码签名来说,这毫无意义。“将FQDN放在CN中是一种常见做法”-该做法在中被弃用(请参阅第9节)。名称应始终位于
SAN
(如果存在
CN
,则还必须在
SAN
中列出)。我不相信RFC(281852806125)有类似的限制(但无论如何,它们是快速和松散的)。然而,我得到的印象是@Heinzi并不是在谈论终端实体证书。Android需要签名代码,但明确接受自签名证书:
您可以使用自签名证书对应用程序进行签名。不需要证书颁发机构。
()@Heinzi如果您询问Android,请在标签中指定。Android是一个特例——证书的内容根本不重要,重要的是证书的有效期为25年,密钥保持不变。Android基础设施使用签名作为作者身份的证明,但不关心名称。这真的有区别吗?当我有CA签名的证书时,我不也必须选择DN吗?@Heinzi CA通常有自己的规则来填写证书主题名称。我明白了。如果DN中没有“个人名称”,那么(在各个CA之间)是否有一个关于公司名称应该放在哪里的既定惯例?
O=MyCompany, C=AT