0

信頼されたルート証明書をインストールしたいと考えています。ここで、クリックするだけで証明書をインストールするバッチ/exeファイルを作成しました。exe/batch今、ファイルを自動的にダウンロード/実行してインストールするWebページにファイルを添付したいと思います。現在、この部分は次のコードでも実行されます (activex オブジェクトとして機能します)。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<!-- saved from url=(0014)about:internet -->


<SCRIPT Language="JScript">



function fnShellExecuteJ()

{

var objShell = new ActiveXObject("Shell.Application");

objShell.ShellExecute("D:\\New folder\\New folder\\RootInstaller.exe", "", "", "open", 1);

}

<HTML>

</SCRIPT> 

<BODY>


<body onLoad="javascript:fnShellExecuteJ();"> 

</BODY>

</HTML>

ここで、証明書がインストールされているかどうかを確認したいですか? ルート証明書が [IE] > [ツール] > [インターネット オプション] > [コンテンツ] > [証明書] > [信頼されたルート証明機関] にインストールされている場合、インストーラを開いてスキップしようとはしません。ただし、インストールされていない場合は、インストールを試みます。

つまり、インストールされている証明書のステータスを取得して確認し、それに基づいて次に進みたいと考えています。

これを読んでくれてありがとう(私の英語はひどいです)。そして、提案/ヒント/書き込みは、この新参者に役立ちます.ありがとう.....

4

1 に答える 1

0

どのように実装したいかによって異なります。

証明書が特定の証明書ストアに存在するかどうかを確認する「標準的な」方法は、 CertOpenStore で特定のストアを開いた後にCertFindCertificateInStoreという API を使用することです (Windows にはいくつかの証明書ストアがあります)。

問題は、これが C/C++ コードであり、ActiveX (または類似のもの) に埋め込む必要があることです。Windows 7 および 8 の場合、それを避けることはできないと思います。

Windows 7 より前のバージョン (Windows XP、Windows Vista) では、Microsoft には CAPICOM と呼ばれるコンポーネントがあり、スクリプトによる暗号化へのアクセスが可能でした。クライアントが XP/Vista のみの場合は、それを使用して、ページの JavaScript から CAPICOM を呼び出すことができます (ユーザーがインストールする必要があります)。

ただし、(証明書をインストールするために) ユーザーのコンピューターで実行可能ファイルを実行している場合は、信頼できる ActiveX オブジェクト (または BHO) を単純にインストールしないでください。JavaScript ページで存在をテストできます。

あれは:

var MyObj;
try {
    MyObj = new ActiveXObject( "MyActiveX" );
    alert( 'my object exist' );
} catch( err ) {
    alert( 'my object do not exist' );
}
于 2012-10-31T09:49:19.430 に答える