web-dev-qa-db-ja.com

opensslを使用して、CAがEVを証明書に使用したかどうかを検出する方法

特定のホスト名の証明書をダウンロードし、発行時にCAがEV(拡張検証)を使用したかどうかを検出したいと思います。これまでのところ、証明書がEVであることを示すものは見つかりませんでした。これを達成する方法はありますか? OpenSSLを理想的に使用していますか?

4
Coxer

EV証明書は構造的には異なりません。異なるポリシーの下で発行された証明書にすぎません。したがって、ポリシーを確認する必要があります。 http://en.wikipedia.org/wiki/Extended_Validation_Certificate#Extended_Validation_certificate_identification を参照してください

かなり大規模なテーブルルックアップを行う必要があります。恐れ入りますが、opensslにはネイティブではありません。

これはおそらく https://stackoverflow.com/questions/14705157/how-to-check-if-a-x509-certificate-has-extended-validation-switched-on の重複です。

以下のコメントへの回答:

この属性は「X509v3拡張」フィールドにあります。 x509v3_config(5) ノート

証明書ポリシー。

これは生の拡張です。この拡張のすべてのフィールドは、適切な構文を使用して設定できます。

PKIXの推奨事項に従い、1つのOIDを使用する場合は、そのOIDの値を含めるだけです。複数のOIDをコンマで区切って設定できます。次に例を示します。

certificatePolicies= 1.2.4.5, 1.1.3.4

それは彼らが証明書を取得する方法です。これは、証明書で次のように表示されます。たとえば、GlobalSign証明書を保護する https://www.globalsign.com/en/ を調べると、

echo | openssl s_client -connect www.globalsign.com:443 2>&1 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > globalsign.pem

これにより、証明書がファイルにキャプチャされます。あなたはそれを見ることができます、

openssl x509 -text -noout -in globalsign.pem

そして、出力のほぼ中間、[...]

 X509v3拡張機能:
 X509v3キーの使用法:重要
デジタル署名、キー暗号化
 X509v3証明書ポリシー:
ポリシー:1.3.6.1.4.1。 4146.1.1 
 CPS:https://www.globalsign.com/repository/

[...]そのポリシーOIDは、EVに対応しますOID(およびwikipediaの表にあります。)そして、マイクが指摘するように、 http://oid-info.com/get/1.3.6.1.4.1.4146.1.1 は、これを{iso(1)づけられた-organization(3 )dod(6)internet(1)private(4)enterprise(1)4146 certificate-policies(1)extended-Validation-SSL(1)}and that 4146 is GlobalSign NV/SA 。

6
Robert Weaver