web-dev-qa-db-ja.com

証明書のサブジェクトX.509

X.509によると、証明書には属性サブジェクトがあります。

 C = US、ST = Maryland、L = Pasadena、O = Brent Baccala、OU = FreeSoft、
 CN=www.freesoft.org/[email protected] 

これは典型的なサブジェクト値です。問題は、それらの属性(C、ST、L、O、OU、CN)のタイプ(またはタグ)とそのフォーマットは何ですか?

50
Sergey

IETF PKIX(最新バージョン RFC 528 )は、証明書の受け入れられているプロファイルです。セクション4.1.2.4から、次のフィールドをサポートする必要があります(括弧の間にOpenSSLのロングネームとオプションのショートネームを追加しました)。

  • 国(countryName、C)、
  • 組織(organizationName、O)、
  • 組織単位(organizationalUnitName、OU)、
  • 識別名修飾子(dnQualifier)、
  • 州または県の名前(stateOrProvinceName、ST)、
  • 共通名(commonName、CN)および
  • シリアル番号(serialNumber)。

サポートする必要がある要素のリストもあります。

  • 局所性(局所性、L)、
  • タイトル(タイトル)、
  • 姓(surName、SN)、
  • 名(givenName、GN)、
  • イニシャル(イニシャル)、
  • 仮名(仮名)および
  • 生成修飾子(generationQualifier)。

値はUTF8StringまたはPrintableStringでエンコードする必要があります(一部はPrintableStringのみで、一部の例外はIA5Stringで)。標準には、すべてのフィールドタイプの最大長もあります(付録A.1)

互換性の理由から、実装はIA5Stringでエンコードされたドメインコンポーネント(domainComponent、DC)もサポートする必要があります。電子メール(emailAddress)とそのエンコード(IA5Stringに注意が向けられますが、DNでは非推奨と見なされています(サブジェクトの別名の拡張子である必要があります)。

78