.cer
ファイルをダウンロードして任意のクライアントの信頼できるルートに自動的にインポートするコードとスクリプトで Web ページを作成しようとしています。
.cer
例: Web サーバーのディレクトリからファイルをダウンロードし、それをクライアントの信頼できるルートに自動的にインポートする Java スクリプト。
すでに、クライアントのローカルで VBScript コードで試しましたが、今度は、閲覧ユーザーに通知せずに、Web ページで自動的にこの作業を行いたいと考えています。
.cer
ファイルをダウンロードして任意のクライアントの信頼できるルートに自動的にインポートするコードとスクリプトで Web ページを作成しようとしています。
.cer
例: Web サーバーのディレクトリからファイルをダウンロードし、それをクライアントの信頼できるルートに自動的にインポートする Java スクリプト。
すでに、クライアントのローカルで VBScript コードで試しましたが、今度は、閲覧ユーザーに通知せずに、Web ページで自動的にこの作業を行いたいと考えています。
こんにちは親愛なる私は多くのページとライブラリを検索して、javascript で seft 署名された ca をインポートする最良の方法を見つけ、2 つの方法を見つけます。
` `
> <html>
> <頭>
> <title>証明書インストール テスト 2</title>
> </head>
> <本文>
> <object id='CertEnroll' name='CertEnroll'></object>
> <object id='XEnroll' name='XEnroll'></object>
> <script language="javascript">
var CERT_ENROLL_CLASSID = "clsid:884e2049-217d-11da-b2a4-000e7bbb2b09";
関数InstallCertChainCEnroll(pkcs7){
CertEnroll.classid = CERT_ENROLL_CLASSID;
var enrollObj = CertEnroll.CreateObject("X509Enrollment.CX509Enrollment");
enrollObj.Initialize(1);
for (var i=0;i<pkcs7.length;i++){
enrollObj.InstallResponse(4, pkcs7[i], 6, "");
}
true を返します。
}
document.write("<br>証明書をインストールしています...");
試す{
var pkcs7Chain = new Array();
pkcs7チェーン[0] =
"-----BEGIN CERTIFICATE-----" +
"MIIDUzCCAjugAwIBAgIIMPQ+41XDpAAwDQYJKoZIhvcNAQEFBQAwNzERMA8GA1UE" +
"AwwIQWRtaW5DQTExFTATBgNVBAoMDEVKQkNBIFNhbXBsZTELMAkGA1UEBhMCU0Uw" +
....
"QCU+xDRP4/o/HHR5T0MEYI+bmuWfF6hbGai6r4VlLmnQHb0Rs5mGDN3eHj0lyMhT" +
"NiNSvPMvQviVxEsjwBjpYhe53cI4bxIVOpqW8GvxUot/Yakdy5xC" +
「-----エンド証明書-----」
InstallCertChainCEnroll(pkcs7Chain);
}キャッチ(例){
document.write("<br>" + ex);
document.write("<br>" + ex.message);
}
> </script>
> </body>
> </html>
` `
そして2つ:
` `
> <html>
> <頭>
> <title>証明書インストール テスト 2</title>
> </head>
> <本文>
> <object id='CertEnroll' name='CertEnroll'></object>
> <object id='XEnroll' name='XEnroll'></object>
> <script language="javascript">
var CERT_ENROLL_CLASSID = "clsid:884e2049-217d-11da-b2a4-000e7bbb2b09";
関数InstallCertChainCEnroll(pkcs7){
CertEnroll.classid = CERT_ENROLL_CLASSID;
var enrollObj = CertEnroll.CreateObject("X509Enrollment.CX509Enrollment");
enrollObj.Initialize(1);
for (var i=0;i<pkcs7.length;i++){
enrollObj.InstallResponse(4, pkcs7[i], 6, "");
}
true を返します。
}
document.write("<br>証明書をインストールしています...");
試す{
var pkcs7Chain = new Array();
pkcs7チェーン[0] =
"-----BEGIN CERTIFICATE-----" +
"MIIDUzCCAjugAwIBAgIIMPQ+41XDpAAwDQYJKoZIhvcNAQEFBQAwNzERMA8GA1UE" +
"AwwIQWRtaW5DQTExFTATBgNVBAoMDEVKQkNBIFNhbXBsZTELMAkGA1UEBhMCU0Uw" +
....
"QCU+xDRP4/o/HHR5T0MEYI+bmuWfF6hbGai6r4VlLmnQHb0Rs5mGDN3eHj0lyMhT" +
"NiNSvPMvQviVxEsjwBjpYhe53cI4bxIVOpqW8GvxUot/Yakdy5xC" +
「-----エンド証明書-----」
InstallCertChainCEnroll(pkcs7Chain);
}キャッチ(例){
document.write("<br>" + ex);
document.write("<br>" + ex.message);
}
> </script>
> </body>
> </html>
` `
しかし問題は、最初のコードを使用するとこのエラーが発生することです: メッセージ: CertEnroll::CX509EnrollmentWebClassFactory::CreateObject: ユーザーによって操作が取り消されました。0x800704c7 (WIN32: 1223) 参照してください: Microsoft msdn ブログ
そして、2番目のコードを使用するときは、cerファイルを中間認証局エリアにインストールします!!!!!!!! 何が起こっているのかというと、pkcs7Chain 変数のこの証明書はルート証明書であり、IstallResponse メソッドはこの人物を信頼されたルート証明機関にインストールする必要がありますが、中間証明機関領域にインストールされています.!? Web ページで javascript を使用して cmd を起動し、ca を中間ルートから信頼できるルートに変更 (置換) できますか? (ieでcmdを起動できます)
信頼されたルート証明書を追加することは、非常に危険な操作です。「閲覧ユーザーに通知せずに」これを行う方法は絶対にありません。