1

デフォルトのパブリック インターフェイスとしてのみ SSL を使用するバックエンド サーバーがあります。このサーバーは、証明書、キー、および ca ファイルを使用して 443 でリッスンし、ssl 検証クライアントが true に設定されています。

クライアント側では、クライアント証明書、キー、および 2 つの CA ファイル (中間 CA、ルート CA) を 1 つの ca.pem ファイルにまとめた ca ファイルがあります。バックエンド サーバーで curl リクエストを実行すると、正常に動作します。また、gnutls-serv と openssl s_server を使用してサーバー/クライアントの証明書とキーをテストし、すべてが有効であることを確認しました。

しかし、Apigee でキーストア (クライアント証明書とキー ファイル [pem 形式]) とトラストストア (ca.pem ファイル) を作成すると、エラーが発生します: - target.name fsbca-test
- Properties - Expression ("fsbca-test " equals target.name)
- ExpressionResult true
- Tree TARGET_fsbca-test
- エラー サービスが一時的に利用できません - error.cause 一般的な SSLEngine の問題 - error.cause.cause 一般的な SSLEngine の問題 - error.class com.apigee.messaging.adaptors.http .HttpAdaptorException - 状態 TARGET_REQ_FLOW - タイプ ErrorPoint

バックエンドで SSL 検証クライアントを false に設定すると、リクエストは Apigee によって正しく迂回され、レスポンスが返されます。

ターゲット エンドポイント プロパティで IgnoreValidationErrors を true に設定すると、リクエストはバックエンド サーバーに転送されますが、サーバーのログにエラーが表示されます。

私がやっていることで何が間違っている可能性があるかについてのアイデアはありますか?

追加トラック: 2 つの証明書で構成される CA ファイルを使用する Apigee 側の問題である可能性があります (.pem で見つかった末尾の証明書を無視する場合があります)。pkcs12 と jks をテストしたいが、それらを Apigee にアップロードできなかった場合 (API ドキュメント ページでは、.pem、JAR、および証明書アクションのみが説明されています)。私は pkcs12 キーストアと jks trustore を備えた小さな Java クライアントを作成しましたが、ローカル ワークステーションから問題なく動作しました。

私を助けることができる情報を事前にありがとう。

よろしく

4

1 に答える 1

0

証明書は個別に (証明書ごとに 1 つ) アップロードする必要があり、証明書の信頼チェーン全体をトラストストアに保存する必要があります。

これは、バックエンドへの SSL に関するページです。

編集:これが私が知っている方法です:

1) 証明書を個別の PEM ファイルに分割します。ファイルに複数の証明書を入れないでください。

2) openssl を使用して各証明書を検証します。

openssl x509 -noout -text -in <cert file name>

期限切れの証明書がないこと、およびサブジェクト フィールドと発行者フィールドがすべての証明書のチェーンを同一の名前で作成していることを検証します。

サーバーの証明書、ルート証明書、およびその間のすべての証明書がトラストストアにある必要があります。

于 2014-02-24T17:11:09.053 に答える