注意:我在这个问题上悬赏。我还不能在一个类似但更简单的问题上悬赏,在这里。如果您可以帮助解决这个更简单的问题,那很好,然后我们也可以将答案放在这个问题上。在更简单的问题中,您可以很快自己创建场景。而且我还下载了 Jetty 9.1.0——所以我不在乎它是否适用于 9.05 或 9.10,任何一个版本都可以。
我安装了 Spring Security Core 以获得“通道安全”功能,即指示哪些控制器操作需要 ssl 连接。
这在使用 Jetty 服务器的开发模式下运行良好——例如 /cert/page1 在底部定义,它要求按预期批准 https 连接。
当我将(生产)WAR 文件部署到 Jetty 9 服务器(外部托管)时,当我转到相同的控制器/操作(使用 Chrome)时,我会收到一个重定向循环指示,或者然后在 Firefox 上它还指示“页面不是正确重定向”。我在 Chrome 中清除了 cookie 以防万一,同样的问题。
我按照说明(使用外部证书代理)为 Jetty 9 服务器创建了一个 SSL 证书并安装它以下几行并指向我的 sslcert/keystore:
#===========================================================
# SSL Context
# Create the keystore and trust store for use by
# HTTPS and SPDY
#-----------------------------------------------------------
jetty.keystore=sslcert/keystore
jetty.keystore.password=xxxxx
jetty.keymanager.password=xxxxx
jetty.truststore=sslcert/keystore
jetty.truststore.password=xxxxx
jetty.secure.port=8443
etc/jetty-ssl.xml
#===========================================================
# HTTPS Connector
# Must be used with jetty-ssl.xml
#-----------------------------------------------------------
jetty.https.port=8443
etc/jetty-https.xml
有没有一种通用的方法可以判断 Jetty 是否会接受任何 https 页面请求?在它的日志中,我所做的似乎没问题,即:
2013-10-04 20:48:43.520:INFO:oejs.ServerConnector:main: Started ServerConnector@73c87405{HTTP/1.1}{0.0.0.0:80}
2013-10-04 20:48:43.692:INFO:oejs.ServerConnector:main: Started ServerConnector@4194f034{SSL-http/1.1}{0.0.0.0:8443}
此外,对于定义我拥有的安全通道的 Config.groovy:
grails.plugins.springsecurity.secureChannel.definition = [
'/cert/cpnimember': 'REQUIRES_INSECURE_CHANNEL',
'/cert/page1': 'REQUIRES_SECURE_CHANNEL',
'/cert/page2': 'REQUIRES_SECURE_CHANNEL',
'/cert/page3': 'REQUIRES_SECURE_CHANNEL',
'/cert/page4': 'REQUIRES_INSECURE_CHANNEL'
]
我不确定如何调试它。我想访问需要 https/ssl 的 jetty 9 服务器上的某个页面,以确保它在没有 spring-security 核心定义的通道的情况下工作,但不知道那是什么。
您能否提供有关如何调试此问题或出了什么问题的帮助?
谢谢。
这个问题与我创建并提供赏金的简化问题的答案类似。现在已授予另一个问题的赏金,我可以删除此问题。但是,它不允许我删除或删除它,所以...