2012-05-25 89 views
1

我想創建一個證書來簽署我們公司的軟件。我使用這個工具(keytool從Java SDK)在下面的格式要求的專有名稱:如何選擇X.509公司證書的名稱?

CN=commonName, OU=organizationalUnit, O=organizationName, L=city, S=state, C=countryCode 

如果我只是想爲我公司的證書(不針對任何特定的人在其中),我應該使用

CN=MyCompany, C=AT 

O=MyCompany, C=AT 

的專有名稱?後者會更有意義(因爲MyCompany是組織的名稱),但我不知道將commonName留空是否「正確」。

+0

通常的做法是將您的FQDN放入CN中。 – Stefan

+1

@Stefan這僅適用於SSL/TLS中使用的證書(甚至在那裏CN可以爲空,並且域名可以放置在SubjectAlternativeName擴展名中)。對於代碼簽名來說這沒有意義。 –

+0

「將您的FQDN放入CN是一種常見做法」 - 該做法在[CA/B基準要求](https://cabforum.org/baseline-requirements-documents/)中已棄用(請參閱第9節)。這些名稱應始終位於「SAN」(如果存在「CN」,則它也必須列在「SAN」中)。我不相信RFC(2818,5280,6125)也有類似的限制(但它們無論如何都是快速和鬆散的)。然而,我得到的印象@海因茲*不*談論最終實體證書。 – jww

回答

2

CommonName也可以保存您的公司名稱。或者您可以將其保留爲空 - 這並不重要,因爲標準對SubjectName中元素的數量沒有要求,也沒有CommonName格式的標準。

但是,你的整個任務似乎沒有多大意義。您將創建簽名軟件的自簽名證書,但驗證人不會接受此簽名。人們會期望您的軟件由授權證書頒發機構頒發的證書籤名。

+0

Android需要簽名代碼,但明確接受自簽名證書:'您可以使用自簽名證書籤署您的應用程序。沒有認證機構是必要的。([Source](http://developer.android.com/guide/publishing/app-signing.html)) – Heinzi

+0

@Heinzi如果你在問Android,請在標籤中註明。 Android是一種特殊情況 - 證書內容根本無關緊要,重要的是證書有效期爲25年,且密鑰保持不變。 Android基礎架構使用簽名作爲作者身份的證明,但不關心名稱。 –

+0

它真的有所作爲嗎?當我有CA簽名證書時,是否還需要選擇DN? – Heinzi