我正在尝试将 PingAccess 设置为
pagateway
共享 Web 会话的几个应用程序的代理(我们称之为 PA 主机)。我希望所有访问都通过 PA 网关并使用 HTTPS,但后端系统不是 HTTPS。
我定义了两个站点,app1:8080
并且app2:8080
. 两者都设置为“安全”= 否和“使用目标主机头”= 是。
我在端口 5000 和 5001 上定义了侦听器,它们都设置为“安全”= 是。
我发现的第一个问题是,当我以这种方式访问任一应用程序时(https://pagateway:5000
例如转到http://app1:8080
通过 PingAccess。对于网络之外的用户,他们甚至无法做到这一点,因为app1
主机甚至不可见或不可访问。
我想也许我需要将“使用目标主机头”关闭为 false,但 Chrome 提示我下载包含 NAK、ETX、ETX、NUL、STX、STX 代码的文件,并且在 PA 日志中我收到 SSL 错误:
2015-11-20 11:13:33,718 DEBUG [6a5KYac2dnnY0ZpIl-3GNA] com.pingidentity.pa.core.transport.http.HttpServerHandler:180 - IOException reading sourceSocket
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
...
我不确定 SSL 错误来自进程的哪一部分(在浏览器和pagateway
,或pagateway
和之间app1
)。我猜可能app1
是意外的主机头有问题......
在另一个变体中,我关闭了 PA 侦听器上的 SSL(我还必须将 PingFederate 客户端设置中的 PingAccess 回调 URL 更改为 http)。但是当我通过访问它时,http://pagateway:5000
我在浏览器中收到了一条通用的 PingFederate 错误消息,并且在 PA 日志中出现了另一个错误:
2015-11-20 11:37:25,764 DEBUG [DBxHnFjViCgLYgYb-IrfqQ] com.pingidentity.pa.core.interceptor.flow.InterceptorFlowController:148 - Invoking request handler: Scheme Validation for Request to [pagateway:5000] [/]
2015-11-20 11:37:25,764 DEBUG [DBxHnFjViCgLYgYb-IrfqQ] com.pingidentity.pa.core.interceptor.flow.InterceptorFlowController:200 - Exception caught. Invoking abort handlers
com.pingidentity.pa.sdk.policy.AccessException: Invalid request protocol.
at com.pingidentity.pa.core.interceptor.SchemeValidationInterceptor.handleRequest(SchemeValidationInterceptor.java:61)
有谁知道我做错了什么?老实说,我对重定向到实际服务器名称感到有点惊讶,但在那之后,我对从这里去哪里感到困惑。
任何帮助,将不胜感激。