問題タブ [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.
security - 受信した証明書チェーンに V3 CA 証明書が含まれていましたが、その鍵の使用に関する制約により、その鍵を使用して証明書に署名することはできないことが示されています
運用前環境の 1 つで使用するサービスの所有者が最近、証明書の設定を (通知せずに) 変更しました。
この証明書の変更により、(weblogic ボックス上に存在する) サービスを呼び出そうとすると、次のようになります。
私は以前にこのエラーに遭遇したことはありません (そして、Google に関する限り、他の誰も遭遇したことはありません) が、チェーン内の証明書の 1 つが CA であり、キー署名の制約がないことを推論しています (明らかに)。ただし、証明書チェーンに問題は見られず、ブラウザーで URL にアクセスしても何もフラグが立てられません。
チェーンは次のようになります。
すべての証明書は、当社のトラスト ストアにあります。また、weblogic を demo trust に設定しようとしましたが、奇妙なことに、それは何の効果もありません。
何か案は?
アップデート
でデバッグを有効にした後
私が得た:
私には、これは weblogic が証明書チェーンを間違って読み取っているように見えます。チェーンの一番下にある証明書が自分自身に署名していると思われますか?
openssl - 2 つの OU 名で CSR を生成する
CSR を生成するアプリケーションを作成する必要があります。CSR を生成する際に、CN、OU などのいくつかの詳細を入力する必要があります。問題は、CSR を送信する必要がある認証局が 2 つの OU (組織単位) 名を要求していることです。私はたくさんグーグルで調べましたが、2つのOU名を指定できるopensslまたはjava keytoolを使用して何も見つかりませんでした。
CSRの生成中に2つのOU名を指定する方法を教えてください。
ruby-on-rails - ローカル Rails サーバーで信頼できる CA 署名付き証明書を使用する
これは少しばかげているように聞こえるかもしれませんが、IOS デバイスの登録をテストしようとしており、信頼できる CA (Verisign、Comodo など) 署名付き証明書を使用して、localhost rails webrick サーバーに追加したいと考えています。非常に特殊なシナリオをテストする必要があるため、自己署名証明書を追加したくありません。これを行う方法はありますか?Comodo などの Web サイトで CA 署名付き証明書を作成しようとすると、ドメイン コントローラーの検証が失敗することはわかっていますが、本番サーバー用に既に持っている証明書はそのドメインにバインドされているため、使用できません。これを回避し、本番レベルの SSL 証明書を作成して開発サーバーに使用する方法はありますか?
java - hexdump sed と xxd を使用して (Java keytool csr から) ファイル内のバイナリを置き換えますか?
この返信に従って、hexdump、xxd、および sed を使用して、ファイル内のいくつかの 16 バイトを変更しようとしています。
その応答によると、keytool (たまたま base-64 PEM 形式) で生成された CSR を DER に変換した後0x13
、0x0c
.
これが私が試みたものです:
変換が欠けているのではないかと思いますが、どこにあるのかわかりません。
sed
利用可能なツール ( 、xxd
、および/または など)を使用してバイト置換を実行するにはどうすればよいhexdump
ですか?
.net - WCF クライアント SecurityNegotiationException
サーバー証明書を使用する WCF サービスがあります。証明書は、当社の内部認証局によって署名されています。ルート証明書は自己署名されており、AD経由ですべてのドメイン コンピューターに配布されます。このサービスに接続する多くのプログラム (約 200 台の PC で約 50 個のアプリケーション) を構築してデプロイしましたが、1 つのサーバー (これを BROKENHOST と呼びます) を除いて、すべて期待どおりに動作します。この特定のサーバー (Windows Server 2003 標準サーバー) では、プログラムがサービスに接続しようとするたびに、具体的には SecurityNegotiationExeption をスローします (名前は会社を保護するために変更されています)。
System.ServiceModel.Security.SecurityNegotiationException: X.509 証明書 CN=server.sub.domain.com、OU=sub、O=domain.com、L=どこか、S=カリフォルニア、C=US チェーンの構築に失敗しました。使用された証明書には、検証できない信頼チェーンがあります。証明書を置き換えるか、certificateValidationMode を変更してください。失効サーバーがオフラインのため、失効機能は失効を確認できませんでした。
---> System.IdentityModel.Tokens.SecurityTokenValidationException: X.509 証明書 CN=server.sub.domain.com、OU=sub、O=domain.com、L=どこか、S=カリフォルニア、C=US チェーン ビルディング失敗した。使用された証明書には、検証できない信頼チェーンがあります。証明書を置き換えるか、certificateValidationMode を変更してください。失効サーバーがオフラインのため、失効機能は失効を確認できませんでした。
WCF サービスで使用される証明書は、IIS でも使用されます。ここで奇妙なのは、BROKENHOST で IE を開いて を入力するとhttps://server.sub.domain.com
、ページが正常に開き、証明書チェーンにOK
. したがって、IEが証明書に問題がない理由はわかりませんが、Windowsアプリは失敗します。
クライアント接続自体は、次のように channelfactory を介して作成されます。
繰り返しますが、サーバーのセットアップが正しいこと、および BROKENHOST に何か問題があることを確信しています。リモート デバッガーでコードを実行してみましたが、まだわかっていないことは何も得られませんでした。
他に試してみるべき提案があれば、教えてください。
PSが役立つ場合に備えて、スタックトレースは次のとおりです。
サーバー スタック トレース: [0] で再スローされた例外:ios - サブジェクト名が一致しない自己署名 CA の SecTrustEvaluate が kSecTrustResultRecoverableTrustFailure で失敗する
自己署名証明書を使用して認証するための、かなり標準的な NSURLConnection コールバックを次に示します。
そしてtrustResult
いつもkSecTrustResultRecoverableTrustFailure
です。
証明書自体には少し問題があります。サーバー上のcurl証明書のサブジェクト名によると、接続先のURLと一致しません。そのサードパーティの会社に連絡したところ、コードでこの URL の不一致を受け入れる必要があるとのことでした。問題は、iOS でこれを行う方法がわからないことです。証明書チェックを完全にバイパスするか (単純に を想定しtrusted=YES
て呼び出すことによりuseCredential
)、完全に失敗するかのいずれかです。最初の解決策は、セキュリティの観点から明らかに間違っており、MITM 攻撃を受けやすくなっています。
これがCURL出力です(ここでは同じ証明書にPEMバージョンを使用しました):
では、iOS でこの特定のエラーを無視するにはどうすればよいでしょうか?