問題タブ [client-certificates]
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.
c# - クライアント証明書の受け渡しが自分のマシンでのみ機能する
使用するサード パーティ アプリケーションがクライアント証明書を渡すことを要求することで保護されている Web サービスがあります。本番環境の提供 Web サービスとクライアントにも証明書をインストールしました。このプロセスは現在、同様のセットアップを使用する他のクライアントで正常に機能しています。現在のバージョンは .NET 3.5 で記述されており、私の開発マシンでは cassini (およびスタンドアロンで実行) で完全に動作しますが、同じコードと証明書のセットアップを使用した運用マシンでは動作しません。プロバイダーの Web サービスがクライアントにインストールされた証明書をブラウザー経由で受け入れることを確認しましたが、証明書をプログラムで Web サービス呼び出しに追加すると、403 が表示され、アクセスが拒否されます。保護された Web サービスにリクエストを送信する前に、呼び出しに追加された証明書のフィンガープリントを出力します。そして、それは実際に添付された正しい証明書です。私の考えでは、どこかで、証明書の秘密鍵部分にアクセスできません。
何か案は?
注: 関連する ~/crypto ディレクトリへの IIS プロセス アクセスを許可しました。
これは C# と .NET 3.5 です。
authentication - 切断されたネットワークから SSL クライアント証明書を生成するには?
IE ブラウザーと IIS 6 の間で HTTPS 経由のクライアント証明書認証を実装する必要があるという特殊な状況があります。ブラウザーと IIS は、ブラウザーが SSL ポートで IIS に接続することのみを許可するファイアウォールによって分離されています。
IIS と同じネットワーク上に内部証明書サーバーがあります。IIS 用の SSL サーバー証明書を生成し、それをインストールしました。SSL のみを許可し、クライアント証明書を要求するように IIS を構成しました。
ここでの制限は、ブラウザ マシンが切断されたネットワーク上にあるため、CA のhttp://caserver/CertSrv URL にアクセスして、通常のようにクライアント証明書を要求できないことです。
ルート CA の公開鍵に対して CSR を生成できる方法があれば、それを CA サーバーにコピーしてクライアント証明書を生成できると考えました。しかし、IE または証明書 MMC には、これを行うための準備がないようです。証明書 MMC は、CA への直接接続を必要とするようです。
誰もこれを以前に解決しましたか?
参考までに、参照されているすべてのサーバーは Windows Server 2003 を実行しています。
更新: CertReq.exe コマンド ライン ツールを指摘してくれた Jonas Oberschweiber と Mark Sutton に感謝します。これを使用して CSR を生成し、その結果、正常にインストールされるクライアント証明書を生成しました。ただし、IE は、問題の IIS サーバーにアクセスするときに、このクライアント証明書を送信していないようです。それでも 403.7 "禁止: SSL クライアント証明書が必要です" が生成されます。その理由は、クライアント証明書のサブジェクト フィールドが IE を実行しているアカウントのユーザー ID と一致しないため、おそらく一致しないクライアント証明書を送信していないためだと思われます。サブジェクトは、CSR を送信し、ファイアウォールの反対側でクライアント証明書を生成するために使用したユーザーのものと一致します。
件名フィールドは重要ですか? IE がこの証明書を送信できるようにするために他に何かする必要がありますか?
.net - .net に https WebRequest を投稿できませんか?
こんにちは、Https で WebRequest を投稿しようとして問題が発生しています。
次のエラーを受け取りました
1.-基になる接続が閉じられました: リモート サーバーに接続できません。
2.-操作タイムアウト
3-基になる接続が閉じられました: SSL/TLS の安全なチャネルを確立できませんでした。
私は自分の会社と顧客の会社の約 3 つまたは 4 つの異なるプロキシで試しましたが、制限なしで ISP プロバイダーと直接接続している場合でも、次のメソッドを実行すると上記のエラーが発生します
これがプロキシの背後で発生するかどうかにかかわらず、リクエストはプロキシの背後にある 1 台の PC からのみ正常に投稿できます。プロキシにクライアント証明書がインストールされていません。
これは .net フレームワーク 1.1 の下にあり、要求には既にネットワーク資格情報が含まれています。
何ができますか?
アップデート
内部例外 3 番目のエラーは次のとおりです。関数は正常に完了しましたが、コンテキストを完了するために再度呼び出す必要があります。
iisper.h のドキュメントによると、このエラーは
MSDNでは、これは
SEC_I_CONTINUE_NEEDED クライアントは出力トークンをサーバーに送信し、返されるトークンを待つ必要があります。返されたトークンは、InitializeSecurityContext (Schannel) への別の呼び出しで渡されます。出力トークンは空にすることができます。
これは、PC にクライアント証明書がないということですか?
iphone - iPhoneクライアント証明書
私が書いているアプリがiPhoneで実行されていることを確認したいと思います。完璧なのはこれです。AppleはSSLクライアント証明書を各iphoneに焼き付けました。これは、受信サーバーで認証できます。私はこの場合ですか?
私はまだこれを研究し始めていません、私は見つけたもので更新します。
更新: これは、証明書とキーチェーンに関するAppleのドキュメントです。それで:
iPhone OSでは、キーチェーンサービスは、アプリケーションにキーチェーンへのアクセスを許可する前にアプリケーションの署名をチェックし、アプリケーションが自身のキーチェーンアイテムにのみアクセスできるようにします(アプリケーションが永続的な参照を取得したアイテムを除く)。iPhone OSでは、ユーザーが認証を求められることはなく、Appleはキーチェーンアクセスユーティリティを提供していません。
c# - キーストアを使用しないクライアント証明書
.NETクライアントにWindowsキーストアを一切使用せずにクライアント証明書を使用させる方法があるかどうかを調べようとしています。
私はこのようなコードスニペットを持っています:
ただし、これは、「test.pem」で参照されている証明書が証明書ストアにインストールされている場合にのみ機能します。これは交渉に鍵が必要だからだと思います。ストアに証明書/キーがない場合、証明書はリクエストとともに送信されません。
私がやりたいのは、1つまたは複数のファイルから証明書と秘密鍵の両方を提供できるようにすることであり、Windows証明書ストアは一切関与しません。
これを行う方法はありますか?
perl - mod_perl で接続が使用している SSL クライアント証明書を確認するにはどうすればよいですか?
クライアント証明書を使用して SSL (HTTPS) で実行される Web サービスを Perl で作成しています。現在の接続でクライアントが使用している証明書を特定して、不要なものを除外するにはどうすればよいですか?
注: Web サービスは mod_perl スクリプトとして実行されています。
openssl - 自分/小規模組織の認証局
次の基準を満たす小さな CA ソフトウェアが必要です。
- CLI インターフェース (私たちは皆、サーバー ソフトウェアの GUI が大嫌いですよね?)
- Web サイトの証明書の発行。そのため、クライアント マシンに 1 つのルート証明書をインストールするだけで、その警告を取り除くことができます)。
- 定義済みの値を使用してユーザー証明書を発行します (p12 やその他のものとして、それらを使用して認証できます)。
tinyca を見ていましたが、やや時代遅れで、うまく機能しませんでした。
Openssl はこれらすべてを実行できるため、一連のシェル スクリプト (または Makefile) をコーディングして、このタスクを自動化できます。それで、誰かがすでにこれをやったのではないかと思っていましたか?
java - Mirth:クライアント証明書を使用してSSLSOAPWebサービスを呼び出す
シナリオは、Mirth内から外部SSLSOAPWebサービスを呼び出すことです。Webサービスには、クライアント証明書とともにSSL/TLS接続が必要です。
組み込みのSOAPSenderDestinationを使用して、リモートの安全なWebサービスを呼び出し、何らかの方法でそのクライアント証明書を含めることを目的としています。
最初にそのクライアント証明書をJavaランタイムにインストールする必要があることを理解しています。これは、Javaランタイムの証明書ストアまたはJetty証明書ストア内にある可能性があります。
プラットフォーム:
- Windows 2003 SP2
- マース1.8
- Java jre1.5.0_09
質問:SSLで保護されたWebサービスを呼び出すときに、Mirth SOAP Senderにクライアント証明書(* .cer)を含めるために、どのような構成手順(Mirth、JRE証明書ストアなど)を提案しますか?
firefox - Apache 2 認証エラー
この HOWTOに従って SSL 証明書を使用してクライアント認証を実装しようとすると、次のエラーが表示されます。
アパッチ:
再ネゴシエーション ハンドシェイクに失敗しました: クライアントに受け入れられません!?
ファイアフォックス:
ssl_error_handshake_failure_alert
設定ミスだと思いますが、見つけられませんでした。
追加情報:
商用 CA サーバーの証明書サーバーは、Apache 2.2 および Passenger で問題なく動作します。クライアント認証関連のディレクティブのみが機能しません。
java - Java HTTPS クライアント証明書認証
私はかなり慣れHTTPS/SSL/TLS
ていないので、証明書で認証するときにクライアントが何を提示する必要があるのか について少し混乱しています。
POST
特定の .xml に対して単純なデータを処理する必要がある Java クライアントを作成していますURL
。その部分は正常に機能しますが、唯一の問題は、それがやり直されることになっていることHTTPS
です。この部分は (Java の組み込みサポートを使用するか、Java の組み込みサポートを使用して)HTTPS
処理するのはかなり簡単ですが、クライアント証明書による認証に行き詰まっています。ここに非常によく似た質問が既にあることに気付きましたが、まだコードで試していません (すぐに試してみます)。私の現在の問題は、私が何をしても、Java クライアントが証明書を送信しないことです (これはダンプで確認できます)。HTTPclient
HTTPS
PCAP
証明書で認証するときに、クライアントがサーバーに何を提示する必要があるかを正確に知りたいです(特にJavaの場合-それが重要な場合)?これはJKS
ファイルですか、それともPKCS#12
? それらの中にあるはずのもの。クライアント証明書だけですか、それともキーですか?もしそうなら、どのキーですか?さまざまな種類のファイル、証明書の種類などについて、かなりの混乱があります。
前に言ったHTTPS/SSL/TLS
ように、私は初心者なので、背景情報もいただければ幸いです (エッセイである必要はありません。良い記事へのリンクで解決します)。