【问题标题】:API Proxy SSL AssistanceAPI 代理 SSL 协助
【发布时间】:2014-01-21 04:11:40
【问题描述】:

我收到了以下问题。任何帮助将不胜感激!

我需要做的是配置 SSL 以根据基本可信根(通常由操作系统和/或 Java 提供)验证目标端点的 SSL 证书。没有文档告诉我如何打开 SSL 证书验证,或者如果我添加一个 TrustStore,它是否会保证 SSL 证书已经过验证。我看到的唯一相关教程是关于我们没有使用的 SSL 客户端身份验证。

【问题讨论】:

    标签: apigee


    【解决方案1】:

    page 解释了后端 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。

    可以在here 找到 SSLInfo 元素的 xsd 架构。

    【讨论】:

      猜你喜欢
      • 2018-06-21
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 2019-11-07
      • 1970-01-01
      • 2021-11-10
      • 2011-02-21
      • 1970-01-01
      相关资源
      最近更新 更多