Pythonベースのプログラム用にX509ストレージシステムに取り組んでいます。簡単にアクセスできるように、すべての証明書は PostgresSQL データベースに保持されます。サブジェクト (ユーザーまたは CA 機関) ごとに証明書が 1 つしかない場合、すべて正常に機能します。次に、発行者フィールドが次の証明書を一意に識別するため、検証パスを見つけるのは簡単です。
UserCert1(CA_cert_class1) -> CA_cert_class1(CA_cert_root) -> CA_cert_root(CA_cert_root)
問題は、一部の証明書が期限切れまたはその他の理由で更新されたときに発生します。次に、2 つ以上の証明書に同じサブジェクトがあります。その場合、複数の可能な認証パスがあります。
UserCert1(CA_cert_class1) -> CA_cert_class1(CA_cert_root)(old)->....
-> CA_cert_class1(CA_cert_root)(new)->....
それぞれの組み合わせを試すことは解決策ではありません。また、古いデジタル署名を検証するために必要なため、期限切れの証明書を削除することは解決策ではありません。
質問: X509 証明書内で発行者証明書を一意に識別する方法。これは X509v3 拡張機能と関係があると思います。使い方がわかりません。