1

以下の質問を受けました。どんな助けでも大歓迎です!

私ができる必要があるのは、ターゲット エンドポイントの SSL 証明書をベースの信頼されたルート (通常は OS や Java によって提供される) に対して検証するように SSL を構成することです。SSL証明書の検証を有効にする方法や、SSL証明書がそれに対して検証されることを保証する場合にトラストストアを追加する方法を説明するドキュメントはありません。関連していると思われる唯一のチュートリアルは、使用していない SSL クライアント認証に関するものです。

4

1 に答える 1

1

バックエンド SSL サーバー証明書の検証については、このページで説明しています。このページには、相互認証を実現する方法が記載されていることに注意してください。この場合、ゲートウェイは、ターゲット サーバーの SSL 証明書を検証し (これは必要です)、証明書を識別としてターゲットに送信します (これは必要ありません)。

ターゲットの証明書を検証するには、トラストストアを作成し、ターゲット サーバーのトラスト チェーン内のすべての証明書をアップロードします。ドキュメントには、ターゲット サーバーの証明書のアップロードのみが記載されていますが (ターゲット サーバーが自己署名証明書を使用している場合に機能します)、非自己署名証明書を使用している場合は、証明書の信頼チェーン全体をアップロードする必要があります。トラストストアの作成とアップロードは、上のページのステップ 6 に示されています。

次に、ターゲット エンドポイントの構成を次のようにします。

<TargetEndpoint name="default>
    <HTTPTargetConnection>
        <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>false</ClientAuthEnabled>
            <TrustStore>myTruststore</TrustStore>
            <IgnoreValidationErrors>false</IgnoreValidationErrors>
        </SSLInfo>
        <URL>https://myservice.com</URL>
    </HTTPTargetConnection>
</TargetEndpoint>

ClientAuthEnabled=false は、ゲートウェイがターゲットに証明書を送信しないことを示します。

IgnoreValidationErrors=false を指定すると、ターゲットから返された証明書がトラストストア内の証明書を使用して検証できない場合、接続が中止されます。IgnoreValidationErrors=false がデフォルトであるため、省略しても問題ありません。ただし、ターゲット サーバーとの通信に問題がある場合は、テスト中に無視フラグを true に設定して、証明書が検証に失敗した場合でも通信を許可すると便利です (問題を特定するためだけに)。本番環境では必ず false に設定してください。

SSLInfo 要素の xsd スキーマは、ここにあります。

于 2014-01-20T20:11:40.350 に答える