API代理SSL协助

时间:2014-01-20 20:08:32

标签: apigee

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

我需要做的是配置SSL以针对基本可信根(通常由OS和/或Java提供)验证目标端点的SSL证书。没有文档告诉我如何启用SSL证书验证,或者我是否添加了TrustStore,如果它将保证SSL证书的验证。我看到的唯一相关的教程是SSL Client Auth,我们没有使用它。

1 个答案:

答案 0 :(得分: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是默认值,因此您可以将其保留,并且可以根据需要运行。但是,如果您在与目标服务器通信时遇到问题,则在测试期间将ignore标志设置为true可能很有用,即使证书验证失败(仅仅是为了隔离您的问题)也允许通信。请确保在生产中将其设置为false。

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