問題タブ [x509certificate2]

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.

0 投票する
1 に答える
643 参照

.net - .NET で相互 SSL に X509Certificate2 を使用するにはどうすればよいですか? 秘密鍵が認識されない

だから、私は秘密鍵と2つの​​ファイルに証明書を持っています...相互SSLに使用するには、それをX509Certificate2にフィードする必要があります。単純に行うとnew X509Certificate2、1 つのファイル名を指定できます。両方で .pem ファイルを作成しましたが、cert.HasPrivateKeyFALSE が表示されます。

両方が 1 つのファイルにあり、X509Certificate2 が理解できる形式は何ですか?

0 投票する
3 に答える
1945 参照

c# - .NETCOMライブラリからASPRequest.ClientCertificate( "Certificate")をデコードします

私の質問をさらに洗練するために、これは3回目の書き直しです。これが一言で言えばシナリオです。

  1. レガシーASP/VBscriptWebサイト
  2. ASPサイトで使用される.NET/C#COMライブラリ
  3. Request.ClientCertificate( "Certificate")を未加工の形式で.NET COMライブラリに送信してデコードし、ActiveDirectoryのクライアント証明書に対してフィールドを検証できるようにします。

    • Request.ClientCertificate( "Certificate")のドキュメントには、ASN.1形式の証明書を表すバイナリデータの文字列であると記載されています。これを受け取る私の.NETメソッドには、パラメーターの文字列型があります。Encoding.UTF8.GetBytesEncoding.Unicode.GetBytes、およびEncoding.ASCII.GetBytesを使用して、 X509Certificate2コンストラクターが期待するbyte[]に変換してみました。

私は、ASP Request.ClientCertificateを未加工の形式で実行する(つまり、デコードする)方法について見つけることができるあらゆる情報をGoogleで検索しようとしましたが、空になりました。また、このデータをファイルに保存し、CertUtilを使用してこれをデコードしようとしましたが、それでもデータのデコードに失敗し、エラーが発生します。

これをいじくり回しながら、ASPとASP.NETから返されるクライアント証明書のサイズを確認することにしましたが、サイズが一致していないことがわかりました。ASPからの証明書は、ASP.NETでは647バイトと1295バイトでした。なぜ両方の環境でサイズが偏っているのかわかりません。したがって、X509Certicate2クラスを使用してASP.NETから返されたクライアント証明書をデコードすることに問題はありません。

また、次のp/invoked関数を使用してみました。

したがって、X509Certificate、X509Certificate2、および上記の関数を使用する場合、一貫した結果が得られます。ASPからの証明書はこれらの関数では使用できません。X509Certificateクラスは、証明書を表すbyte []を使用して構築しようとすると、例外をスローします。

CAPICOMライブラリを使用して証明書をインポートしようとしましたが、X509Certificate2クラスで発生するのとまったく同じ例外が発生します。

要求されたオブジェクトが見つかりません

要約すると、私がやりたいのは、X509Certificateクラスのセットを利用して.NET / C#COMライブラリからASP Request.ClientCertificate( "Certificate")をデコードすることです。

0 投票する
4 に答える
17617 参照

c# - 最小限のダミーX509Certificate2を作成するにはどうすればよいですか?

私は.NETアプリケーションの単体テストを行っています。単体テストの中には、プログラムでX509Certificate2オブジェクトを生成するものがあります。

実際の署名/秘密鍵/検証に関するものは気にしません。フィールドを調べたときに例外をスローしないオブジェクトが欲しいだけです。パラメーターなしのコンストラクターを使用してみましたが、アクセスすると、多数のフィールドが例外をスローします。デバッガーで見られるように:

SubjectName ='(new System.Collections.Generic.Mscorlib_CollectionDebugView(result.Certificates))。Items[0].SubjectName'はタイプ'System.Security.Cryptography.CryptographicException'の例外をスローしました

また、いくつかの乱数を含むバイト配列を渡そうとしましたが、それは構築されませんでした(配列は特定のサイズである必要がありますか?)

それで、質問:フィールド/プロパティアクセス時に例外をスローしないX509Certificate2オブジェクトをプログラムで生成する最も簡単な(コードの最も少ない行)方法は何ですか?

0 投票する
1 に答える
1419 参照

certificate - CSR版と証明書版の違いを教えてください。

CSR(RFC2986)を使用してX509 v3証明書を生成したいのですが、RFCではPKCS10(CSR)はv1のみをサポートするとしています。誰か教えてもらえますか?

0 投票する
1 に答える
1197 参照

asp.net - 証明書ストアに格納されている証明書は、時間の経過とともにASP.NETアプリケーションから消えます

ClickOnce配置マニフェストを動的に生成して署名するために使用しているThawteからのコード署名証明書を取得しました。問題は、IISを再起動するか、署名証明書を再インポートすると、これらのマニフェストを生成して署名するASP.NETアプリケーションが正常に機能することですが、時間の経過とともに、次の関数が証明書を見つけることができません。

最終的に、アプリケーションは証明書を見つけることができないというエラーをスローし始めます。ASP.NETアプリケーションを起動したときに証明書が検出されるため、証明書が正しく(またはほとんど正しく)インストールされていると思うので困惑していますが、ある時点でCount == 0ブランチに到達し、それは正しくありません。証明書は、アプリケーションプールユーザーの「CurrentUser\Personal」証明書ストアにあります。

質問:証明書が突然「消える」か、見つからないのはなぜですか?

0 投票する
1 に答える
508 参照

security - X509Certificate2.Export(Pkcs12)を複数回呼び出すと、異なる結果が返されるのはなぜですか?

これがテストです:

を使用して呼び出された場合X509ContentType.Cert、値は常に同じであるため、コンソールは「True」と出力します。ただし、Pkcs12オプションを使用する場合、値は常にまったく異なります。それはなぜですか、そしてそれらを同じにする方法はありますか?

0 投票する
1 に答える
5737 参照

c# - .p12 ファイルに含まれるすべての証明書のインポート

.p12ASP.NET アプリケーションが HTTPS 経由で Web サービスに接続するためのファイルがあります。

.p12ファイルをローカル マシン/マイ ストアにインポートしようとしています。.p12ファイルに複数の証明書が含まれています。1 つはプライベート キーを含み、もう 1 つはチェーンを完成させるための CA 証明書です。

現在、「System.Security.Cryptography.X509Certificates.X509Certificate2 オブジェクトの Import メソッドを使用して、このファイルをストアにインポートしています。今日、CA 証明書がインポートされていないことに気付きました。秘密鍵を含むメインの証明書のみがこの方法でインポートされています。MSDN をさらに調べた結果、インポート方法に関する次のルールが見つかりました。

PFX/PKCS12 証明書には、複数の証明書を含めることができることに注意してください。その場合、秘密鍵に関連付けられた最初の証明書が使用されます。秘密鍵が見つからない場合は、最初の証明書が使用されます。

.p12ファイル内のすべての証明書を実際にインポートするプログラムでファイルをインポートする別の方法を誰かに提案できますか? この機能を実行するためにPowerShellを使用しています。

0 投票する
4 に答える
24331 参照

c# - X509Certificate オブジェクトから秘密鍵をエクスポートする

X509Certificate2 を .p12 ファイルでビルドする C# コードを使用し、コンストラクターで証明書へのパス、証明書のパスワードを挿入します。また、以下に示すように、エクスポート可能としてマークしました。

次のようにして、秘密鍵を AsymmetricAlgorithm 形式で取得します。

ここで、証明書から秘密鍵をBase64形式で取得したいと考えていますが、それを行う方法がわかりません。これは私たちにとって非常に重要です。

0 投票する
2 に答える
2238 参照

c# - C#でasn1をbase64に変換します

C#コードを使用して、ASN.1でエンコードされたX509Certificateの秘密鍵をBase64形式に変換する方法はありますか?

0 投票する
1 に答える
9040 参照

c# - 秘密鍵をバイト配列としてエクスポートする最良の方法

ユーザーから秘密鍵を取得し、それを base64 として別のアプリケーションに送信する必要があるアプリケーションを作成します。ユーザーが秘密鍵を使用して X509Certificate2 を挿入できるようにしたいと考えています。今、私の大きな問題は、秘密鍵を AsimetricAlgorithm オブジェクトからすべての秘密鍵を含むベイト配列に変換するにはどうすればよいですか? openSSl を使用できることがわかりました - すべての証明書を pem ファイルに変換してから RSA ファイルに変換し、秘密鍵を読み取りますが、使用したくない理由: ファイル、3P ライブラリでは使用したくないので、そうではありません。安全など..それを行う別の方法を知っている人はいますか?

前もって感謝します!