問題タブ [certificate-authority]
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# - GC.Collect()を使用すべきではないのはなぜですか
CertAdm.dllを使用して認証局に接続するアプリケーションを開発しています。「証明機関のデータベースセッションを開こうとしましたが、アクティブなセッションがすでに多すぎます。追加のセッションを許可するようにサーバーを構成する必要がある場合があります。」というエラーが表示されることがあります。
以下のコードのように接続を構成すると、エラーは発生せず、すべて正常に機能します。
今私が疑問に思っているのは、GC.Collect()を使用すべきではないと人々が言うところをたくさん読んだことです。なぜ私はすべきではないのですか?それは私の問題を解決しますか?
すべての助けは非常にありがたいです。
iphone - 内部 CA ルート証明書を iPhone iOS プロビジョニング プロファイルに追加する
私の iOS アプリは現在開発中であり、接続するサービスは内部 (会社) CA によって署名された証明書を使用しています。私のアプリは多くの場所で、同期リクエストを使用して安全な Web サービスを呼び出します。非同期に切り替えて証明書チャレンジを処理し、ドメインから証明書を手動で受け入れるのは大変な作業です。
私がやりたいことは、CA ルート証明書をチームのプロビジョニング プロファイルに追加して、開発中の信頼できる CA として認識されるようにすることです。誰かが私にこれを手伝ってもらえますか?
これが不可能な場合、誰か提案はありますか? これが私が見た最良の選択肢から最悪の選択肢までです。
- dev プロビジョニング プロファイルの信頼できる CA に内部 CA ルート証明書を追加する
- 証明書を購入します (展開サーバーには既に有効な証明書があり、開発/テスト環境で必要な証明書にお金を無駄にしたくないため、これを行いたくありません)。
- 課題を回避するために ASI フレームワークに切り替えます (アプリの安全性が低下するため、これを行いたくありません。コードはそのままで正しく安全ですが、開発/テストでテストすることはできません。アプリを作成したくありません。さらに悪いのは、開発環境でテストできるようにするためです。)
- 非同期リクエストに切り替え、自分のドメインからすべての証明書を受け入れることで課題を処理します (また、動作するコードのコードを変更したくありません。また、非同期に切り替えるのは多大な労力であり、時間がありません) .
すべての助けに感謝します!ありがとう。
apache - CA サーバーは廃止される予定です。内部リバース プロキシ接続ではどうなりますか?
SSL CA サーバーが廃止され、この CA によって署名された証明書を使用して内部 Apache とリバース プロキシ Apache 間の接続を確立するとどうなりますか?
Apache の SSLVerifyClient プロパティはデフォルトに設定されています。
openssl - 0.9.8r で Openssl s_Client が証明書を検証しない
私はopenssl v0.9.8rを使用しており、このコマンドを実行してみました(実行中のディレクトリでCAファイル名をcacert.pemとして)
openssl s_client -CAfile cacert.pem -CApath ./ -connect mail.google.com:443
そして、検証は次のように失敗しました
Verify return code: 20 (unable to get local issuer certificate)
ただし、古いバージョンの 1 つ、つまり OpenSSL 0.9.8e-fips-rhel5 で同じコマンドを試したところ、期待どおりに成功しました。ここで何か不足していますか?しばらくopensslの問題で立ち往生しているので、私が得ることができる助けを大いに感謝します. よろしくお願いします。
よろしく
ハリ
ssl-certificate - SSL 証明書は複数の認証局によって署名できますか?
信頼を少し分散させるとよいでしょう。そのため、どのインスタンスでも 1 つのルートだけに依存する必要はありません。
複数の CA によって署名された単一の証明書を持つことは可能ですか?
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
security - 高度なSSL:中間認証局と埋め込みボックスの展開
高度なSSLギャルとみんな-これは2日間の期間の後に、思慮深く答える人には報酬に値する複雑なテーマだと思うので、これに報奨金を追加します。
ここでの仮定のいくつかは、単純に次のとおりです。仮定、またはより正確には希望に満ちた推測。これを頭の体操と考えてください。単に「これは不可能です」と言うだけでは意味がありません。
「似たような」ことをしたことがあれば、代替の部分的な解決策を歓迎します。個人的な経験です。計画全体に欠陥があったとしても、これから何かを学びたいと思っています。
シナリオは次のとおりです。
私は組み込みLinuxシステムで開発しており、そのWebサーバーがすぐに使用できる手間のかからないSSLを提供できるようにしたいと考えています。私が目指している設計基準は次のとおりです。
持っている必要があります:
- ユーザーに自分で作成したCA証明書をブラウザに追加させることはできません
- 静的に生成された(製造時に)自己署名証明書をユーザーに追加させることはできません
- 動的に生成された(起動時に)自己署名証明書をユーザーにブラウザーに追加させることはできません。
- デフォルトでHTTPに設定できず、SSLの有効化/無効化を切り替えることができません。SSLである必要があります。
- 埋め込みボックスとWebブラウザクライアントの両方がインターネットにアクセスできる場合とない場合があるため、インターネットにアクセスできなくても正しく機能すると想定する必要があります。信頼できるルートCAは、オペレーティングシステムまたはブラウザに付属しているものだけです。そのリストがブラウザとオペレーティングシステム間で「基本的に」同じであると仮定しましょう。つまり、それらに依存する場合、成功率は最大90%になります。
- 夜間のフライバイオペレーション、つまり' Fast EddieのSSL証明書クリアリングハウスを使用することはできません。この低価格では、サーバーをハッキングする必要があります。'
持っていてよかった:
- 証明書のホスト名がブラウザのホスト名と一致しないことをユーザーに警告したくありません。それは不可能かもしれないので、私はこれを持っているといいと思います。
ほしくない:
- 各ボックスに同じ静的キーのセットを出荷したくありません。「できない」リストによって暗示されるようなものですが、私はリスクを知っています。
はいはい、わかっています。
- ユーザーが自分の証明書/キーをアップロードするためのメカニズムを提供することはできますが、実際に提供していますが、これは「高度なモード」であり、この質問の範囲外であると考えています。ユーザーが独自の内部CAを持っているか、キーを購入するのに十分進んでいる場合、それらは素晴らしいものであり、私はそれらが大好きです。
思考キャップタイム
SSLでの私の経験は、「実際の」ルートによって署名される証明書/キーを生成することと、独自の内部CAを作成し、内部で「自己署名」証明書を配布することでゲームを少し強化することです。証明書をチェーンできることは知っていますが、操作の順序がわかりません。つまり、ブラウザはチェーンを「ウォークアップ」して、有効なルートCAを認識し、それを有効な証明書として認識しますか?それとも、すべてのレベルで検証を行う必要がありますか?
中間認証局の説明に出くわし、潜在的な解決策について考えさせられました。「単純な解決策」から「悪夢のモード」に移行した可能性がありますが、次のことが可能でしょうか。
クレイジーアイデア#1
- 「実際の」CAによって署名された中間認証局証明書を取得します。(ICA-1)
- ROOT_CA-> ICA-1
- この証明書は、製造時に、ボックスごとに一意のパスワードなしのサブ中間認証局ペアを生成するために使用されます。
- ICA-1-> ICA-2
- ICA-2を使用して、一意のサーバー証明書/キーを生成します。ここでの注意点は、IPのキー/ペアを生成できますか(DNS名ではありませんか?)?つまり、これの潜在的な使用例は、ユーザーが最初にhttp経由でボックスに接続し、次にリダイレクトURLのIPを使用してクライアントをSSLサービスにリダイレクトすることです(ブラウザーが不一致について文句を言わないようにするため)。これは家を倒すカードかもしれません。リダイレクトが発生する前にSSL接続を確立する必要があるため、これも問題であることがわかります。しかし、それがすべて魔法のように機能した場合
- 次に、ICA-2を使用して、ボックスがIPを変更するたびに新しい証明書/キーのペアを生成し、Webサーバーが復旧したときに常に「有効な」キーチェーンを取得できるようにすることはできますか。
- ICA-2-> SP-1
わかりました、あなたはとても賢いです
ほとんどの場合、私の複雑なソリューションは機能しませんが、機能した場合は素晴らしいでしょう。同様の問題がありましたか?あなたは何をしましたか?トレードオフは何でしたか?
c# - エンタープライズ CA を使用した WCF SSL 証明書
アプリケーションの場合、WCF サービス用の SSL 証明書が必要です。
それで、私たちはそれをインストールしました。Web ブラウザーを使用して https 経由でインターネット ブラウザーを使用する場合、問題も警告も何もないので、この証明書は Windows で有効であると見なされると思います。
問題は、WCF サーバーに接続しようとすると、次のエラーが発生することです。
L=MyLocation、S=SO、C=CH チェーンの構築に失敗しました。使用された証明書には、検証できない信頼チェーンがあります。証明書を置き換えるか、certificateValidationMode を変更してください。失効サーバーがオフラインのため、失効機能は失効を確認できませんでした。
何が間違っている可能性がありますか?チェーンのどの部分が無効かを知るにはどうすればよいですか? 不足している部分を知る方法はありますか?
これが私のコードですサーバー:
私のクライアント側:
c# - C# コードで ICertView2 を使用できるようにするために、certadm.dll を正常に登録する方法
動機:
ローカル マシン上の Windows CA から証明書を取得して表示できるようにしたいと考えています。マシンのブラウザ キーストアにはアクセスしたくありませんが、Windows CA (Windows Certifcate Authority (Service)) にはアクセスしたくありません。
これをC#コードでやりたいです。
これまでの私の調査:
次の行を使用しているいくつかの例を見つけました:
この行と ICertView2 構造体を使用できると思います。目標に到達しました。この行を Visual Studio の C# コードに書き込むと、ICertView2 と CERTADMINLib を認識していないと表示されます。したがって、Web を再度検索して、参照をインポートする必要があることがわかった場合。幸いなことに、C:\Windows\System32 フォルダに存在する COM ライブラリ certadmin.dll が必要です。
だから私は Solutionexplorer->Project->References->Add Reference->COM に参照を追加しようとしました。しかし、そこにはリストされていません。「CertCli 1.0 Type Library」と呼ばれる似たようなライブラリだけです。私はこれを追加し、また入力することができました
残念ながら、必要な " ICertView2 " クラスはそこにありません。入力すると
ICertView2を使用できるようにするために入力する必要がある、Visual Studioは、「 CERTADMINLib 」も知らないと言っています。
さらに、Visual Studioで使用できるようにするには、事前にcertadm.dllを登録する必要があるというヒントをネットで見つけました。dll ファイルを登録しようとしましたが、うまくいきません。
次のコマンドを呼び出すと:
次のメッセージを表示するダイアログ ボックスを表示します
。... 指定されたモジュールが見つかりませんでした。'
certadm.dll のバージョンは「5.2.3790.3959」です。「Windows 7 Enterprise SP1」を使用しています。
Visual Studio で適切な参照を登録してさらに利用できるようにする方法を教えてください。
さらに情報を忘れた場合は、お知らせください。追加できます。