問題タブ [certenroll]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - CertEnrollを使用してWindows7に証明書をインストールできません
IEでXenRollを使用してWindowsXPユーザーに証明書を発行する既存の証明書発行アプリケーション(C#、ASP.NET、JavaScript)があります。これを拡張して、WindowsVistaおよびWindows7ユーザーをサポートし、IEも使用する必要があります。
Vistaおよび7の場合、MicrosoftはXenRollActiveXコントロールを新しいCertEnrollコントロールに置き換えました。これはVistaSP2で機能しますが、7ではインストール手順で次のエラーが発生します。
CertEnroll :: CX509Enrollment :: InstallResponse:証明書チェーンは処理されましたが、信頼プロバイダーによって信頼されていないルート証明書で終了しました。0x800b0109(-2146762487)
関連するHTMLとJavaScriptのスニペットは次のとおりです。
これで、ルート証明書が信頼されていないのは事実ですが、最初のパラメーターを4に設定してInstallResponseを呼び出しています。これにより、ルート証明書が信頼されていない場合でもインストールが可能になります。これはVistaで宣伝されているように機能しますが、Windows7では機能しないようです。
テストしましたが、ルート証明書が信頼されている場合は機能します。誰かがそれを言うと確信しているので、私はそれを先取りします-クライアントにルート証明書を信頼させることは私たちにとって実際にはオプションではありません(私たちは顧客を認証する一環として、クライアント認証証明書を顧客に配布したいと思っています私たちのネットワーク上)。
私はここで何か間違ったことをしていますか?他の誰かがこれをWindows7で動作させましたか?
x509 - CERTENROLLリクエストで公開鍵を提供する
テンプレートを使用して(AD証明書サーバーから)証明書を要求したい。リクエストで公開鍵を提供したい。msftのSDKサンプルを使用する
それなら私はこのようなことをする必要があると思います
しかし、私はxxが何であるかわかりません。私は公開鍵を持っていますが(弾力がある城のPKCS10オブジェクト内)、この関数に渡すにはどのような形式にする必要がありますか?
c# - CertEnroll::CX509Enrollment::InstallResponse: オブジェクトまたはプロパティが見つかりません。0x80092004 (-2146885628)
私はこの問題を抱えています.C#コードを書きました:
- プログラムによる CSR の生成
- CSR を Microsoft 証明書サービスに送信する
- 証明書を受け取り、pfx として保存します。
コードはうまく機能しますが、プログラムで CSR を作成する代わりに、IIS を使用して作成した CSR を使用すると、上記のエラーが発生します。
理由は何ですか?
Microsoft 証明書サービスで証明書を作成することはできますが (CCertRequestClass.Submit
メソッドを呼び出して、発行された証明書で確認できます)、それをインストールすることはできません。を呼び出すとエラーが発生しますCX509EnrollmentClass.InstallResponse
。以下は私のCSR生成コードです:
javascript - 特定のテンプレートを試行すると、CX509CertificateRequestPkcs10 オブジェクトの InitializeFromPrivateKey() のテンプレート パラメーターによって例外が発生する
X509Enrollment.CX509CertificateRequestPkcs10オブジェクトのInitializeFromPrivateKey()でテンプレート パラメーターを指定すると問題が発生します。「ユーザー」のテンプレート以外のものは、次の例外になります:-
CertEnroll::CX509CertificateRequestPkcs10::InitializeFromPrivateKey: 要求された証明書テンプレートは、この CA ではサポートされていません。0x80094800 (-2146875392)
使用する必要がある特定の証明書テンプレートがあり、それを試すとコードが例外をスローします。テンプレートは、CA と、次のコードを実行しているクライアント マシンに存在します。
Javascript コードは次のとおりです。
他のいくつかの質問
- テンプレートがクライアント マシンに存在する必要があると思いますか? そうでなければ、テンプレートを照会する CA の場所をどのように知るのでしょうか?
- クライアント上の CertEnroll は、Windows 2003 CA サーバーに対しても機能しますか??
あなたが私を助けることができれば、それは大歓迎です!!!
追加情報
- クライアントは Windows 7 で、MS IE9 クライアントが管理者として実行されています。
- 上記のページをホストする Web アプリは、HTTPs 経由でアクセスされます。
- Web アプリは Win2003 CA サーバーでホストされています。
投稿する前に私が見た...
-
CertEnroll + InitializeFromPrivateKey に関する Stackoverflow スレッド-テンプレート名ではなくテンプレート OID の使用に関するブログ
- MSDN / alejacma のサイト
- MSDN の CertEnroll API
.net - CERTENROLLLib を使用して秘密鍵を作成するときのファイルが見つからないというエラー
System.IO.FileNotFoundException: CertEnroll::CX509PrivateKey::Create: 指定されたファイルが見つかりません。0x80070002 (WIN32: 2)
上記のエラーは、CertEnroll.dll の CX509PrivateKeyClass クラスを使用して CSR を生成するための秘密キーを作成しようとしたときにスローされる例外です。
Windows 2008 サーバーにデプロイされたコードを実行しようとしたときにのみ発生するようです。
Windows 7で問題なく動作します。
asp.net - Asp.Net CertEnroll CX509CertificateRequestPkcs10 例外
Bouncy Castle と .Net フレームワークの組み合わせを使用して X509 証明書を作成する asp.net 4.0 プロジェクトがあります。
私のW7開発マシンでは正しく動作しますが、W2008(r2ではなく32ビット)にインストールすると、次のコードが表示されます:
この例外をスローします:
タイプ 'System.__ComObject' の COM オブジェクトをインターフェイス タイプ 'CERTENROLLLib.CX509CertificateRequestPkcs10' にキャストできません。この操作は、IID '{728AB35B-217D-11DA-B2A4-000E7BBB2B09}' を持つインターフェイスの COM コンポーネントでの QueryInterface 呼び出しが次のエラーのために失敗したため、失敗しました: そのようなインターフェイスはサポートされていません (HRESULT からの例外: 0x80004002 (E_NOINTERFACE)) .
COM は 32 ビットのみと互換性がありますが、サーバーは 32 ビットであるため、最初は 64 ビット サーバーの問題である可能性があると考えました。
アプリはフレームワーク 4.0 を使用して構築され、割り当てられた IIS AppPool は 4.0 の統合モードで実行され、「ネットワーク サービス」の ID が使用されます。クライアント ブラウザーが使用する (IE8 32) とまったく同じです。
W2008-32 (標準) はそのままで CERTENROLLLib を実装していませんか? この状況で動作させる方法を知っている人はいますか?
ご提案ありがとうございます。
javascript - javascriptで署名付きPKCS#7メッセージを作成するには?
JavaScript を使用して、クライアント側で PKCS#10 証明書要求用の署名付き PKCS#7 メッセージを作成しようとしています。
PKCS#10 には良い例があります: http://blogs.msdn.com/b/alejacma/archive/2009/01/28/how-to-create-a-certificate-request-with-certenroll-javascript.aspx
しかし、PKCS#7 を作成する必要があり、その方法がわかりません。CertEnroll の公式ドキュメントには例がありません (実際にはまったくありません): http://msdn.microsoft.com/en-us/library/windows/desktop/aa374850(v=vs.85).aspx
私はこのコードで終わった:
javascript で PKCS#7 メッセージを作成する方法はありますか?
更新: 既に PKCS#10 証明書要求があり (コード サンプルの最初の関数を参照)、そのために PKCS#7 署名付きメッセージを作成する必要があります。わかりました、私は私の質問を言い換えます。javascriptで署名付きPKCS#7メッセージを作成するには? (理想的には、UI で適切な証明書を指定できるようにする必要があります。)
JavaScriptについては、便利な方法ではないことは理解していますが、クライアント側(ブラウザ)で処理する必要があるため適切です。さらに、証明書登録 IX509CertificateRequestPkcs7 インターフェイスには [WebEnabled] とマークされたメソッドがあるため、私が述べたことを実行する方法があるに違いないと思います。
c# - CertEnroll を使用して Extended Validation 自己署名証明書を生成するにはどうすればよいですか?
Windows Azure のバグにより、Windows 8 アプリケーションから Azure REST API で使用されるすべての自己署名クライアント証明書は、拡張検証証明書として指定する必要があります。
より良いユーザー エクスペリエンスを提供するために、この自己署名証明書をリモート サーバーで生成しようとしています。C# を使用して自己署名証明書を作成する方法についての質問に対するこの回答で説明されているように、Windows の一部として配布されている COM ライブラリであるCertificate Enrollment APIを使用しています。
コードはほとんど同じですが、自分で使用するためにわずかに変更されています。
適切なタイプの構造を表しているように見えるインターフェイスを見つけましたが、使用ICertificatePolicy
する権利IPolicyQualifier
を推測できません。私のコードでは、修飾子は
明確にするために、これは Windows 8 Certificate Manager で情報を構成する場所です。
これにより、証明書に次のプロパティが生成されます。
私のコードは現在、このプロパティを生成します:
閉じますが、まだそこにはありません。
おそらく InitialiseDecode メソッドを使用して、データを にロードしIPolicyQualifier
て期待される結果を生成する別の方法はありますか?
c# - C# certenroll.dll を使用して、CA なしで非自己署名クライアント CX509Certificate 要求を生成する
CERTENROLL.dll の CX509CertificateRequest 証明書機能を使用して C# で生成した自己署名ルート証明書があります。
同じ API を使用して、ルートによって署名されたクライアント証明書を生成する関数を作成したいと考えています。ただし、自己署名証明書を生成しない唯一の CertEnroll オプションには、認証された CA が必要です。
SignerCertificate を設定するためのフラグがあるようですが、常に初期化に失敗します。
ルートによって署名されたクライアント CX509CertificateRequest を生成する方法を知っている人はいますか?
ヘルプやアドバイスをいただければ幸いです。