0

Web ページの最初の訪問時にインストールされるはずの ActiveX コントロールがあります。

OpenSSL で作成された自己署名証明書とその子があります。問題は、ルート証明書を使用して ActiveX コントロールに署名すると、信頼できるものとしてインストールされていても、ActiveX のチェック中に Windows がそれを検証できないことです。

それは書いている、

「証明書の基本的な拡張子が確認されていません」

および「証明書の表示」で:

「証明書パス内の証明機関の 1 つが証明書の発行を許可されていないか、この証明書をエンドエンティティ証明書として使用できないため、証明書は有効ではありません。」

ルート証明書が信頼されているときに署名に子証明書を使用すると、問題はありません。

ルート証明書は、ファイルなどではなく、証明書関連のものにのみ署名できると思いますが、これについて確認したいと思います。

4

2 に答える 2

1

このエラー メッセージが伝えようとしているのは、キー用に生成した証明書に正しい証明書の拡張子が含まれていないということだと思います。コード署名には、コード署名用に生成された証明書が必要です。他のタイプの証明書 (データに署名するために生成される証明書など) は、CA による精査の対象とならないため、コード署名に必要なセキュリティ レベルが低くなります。

鍵署名用に独自の自己署名ルート証明書をセットアップし、コード署名用に子証明書をセットアップする必要があります。次に、ルート証明書がブラウザの信頼できるキー ストアにある限り、ActiveX 署名は問題ありません。通常、鍵署名証明書は鍵署名専用に設定し、コード署名証明書はコード署名専用に設定する必要があるため、これらの鍵を他の目的に使用することはできません。

このソリューションは、事前にすべてのユーザーの PC にルート キーをインストールできる組織内では問題ありません。公共のインターネット上の Web ページで ActiveX コントロールを使用したい場合は、ユーザーに証明書を信頼するよう説得する必要があります (そうする正当な理由がない場合でも)。または、コード署名証明書を購入する必要があります。ルート証明書が一般的なブラウザにすでに知られている商用 CA の 1 つから。

最後に、 ActiveX コントロールは Windows 上でしか実行できず、信頼されている場合にのみ実行できるため、ActiveX コントロールを使用しないことを強くお勧めしますセンスのあるほとんどの人は、ブラウザのセキュリティを拒否するように設定しています。別のテクノロジー ( Javascript など)使用してアクティブ コンテンツを作成すると、より多くの成功を収めることができます。

于 2010-11-16T15:16:45.023 に答える
0

バイナリのデジタル署名に自己署名証明書を使用することは、プログラムでデジタル証明書を使用するという概念にほとんど反します。基本的な考え方は、コードが自分で作成したものであり (真正性)、リリース後に変更されていないことを証明することです (完全性)。これは、信頼できる認証局 (CA) によって署名された署名付き証明書を使用して行う必要があります。

これについては、次の質問でもう少し詳しく回答しました。

キーを作成し、signtool を使用して実行可能ファイルに署名する

于 2010-11-17T03:27:37.337 に答える