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