注意:如果您想查看此演示应用程序的行为,请访问www.collaborativepowernowinternational.us。在这里,选择testssl.PersonController,你可以创建一个人。然后去编辑指定了SSL通道的人员,这会给出一个重定向循环。jetty 9:设置最基本的SSL/https
它似乎与Jetty 9更多的配置项目进入start.ini文件,我有版本9.05。
为了测试最基本的SSL/HTTPS,我在取消对以下行start.ini:
#===========================================================
# SSL Context
# Create the keystore and trust store for use by
# HTTPS and SPDY
#-----------------------------------------------------------
jetty.keystore=etc/keystore
jetty.keystore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
jetty.keymanager.password=OBF:1u2u1wml1z7s1z7a1wnl1u2g
jetty.truststore=etc/keystore
jetty.truststore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
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
没有其他码头配置更改。然后,我构建了最基本的Grails应用程序(拥有一个Person类),其中我设置了某些控制器操作来保证安全性,这可以在我的开发机器上使用较旧的内置Jetty版本(即Grails包含的版本)正常工作。这是由包括弹簧安全的核心,然后把下面几行到配置文件做简单:
grails.plugins.springsecurity.secureChannel.definition = [
'/person/list': 'REQUIRES_INSECURE_CHANNEL',
'/person/delete/**': 'REQUIRES_SECURE_CHANNEL',
'/person/edit/**': 'REQUIRES_SECURE_CHANNEL',
'/person/show': 'REQUIRES_INSECURE_CHANNEL'
]
grails.plugins.springsecurity.portMapper.httpPort=80
grails.plugins.springsecurity.portMapper.httpsPort=443
当我访问的人/编辑动作我得到在浏览器重定向循环(使用部署的WAR文件到专用的CentOs 6机器上的Jetty 9)。这是使用随Jetty 9提供的提供的密钥存储库,只需取消注释start.ini中的行即可使用它。
我正在阅读的主要Jetty SSL配置页面是here。我不清楚的是,是否足够更新start.ini文件?如果不是,究竟怎样完成一个加入此之前的链接描述码头,https.xml线,即线:
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
<Set name="KeyStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
<Set name="KeyStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
<Set name="KeyManagerPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
<Set name="TrustStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
<Set name="TrustStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
</New>
不知道如何添加,但他们似乎也开始重复。 ini文件行上面。
你能帮我解决一下最基本的Jetty SSL吗?非常感谢。
如果不熟悉Grails,可以简单地下载它,然后创建一个域类 - 这里有一个命令行选项。然后给它字段字符串firstName,字符串lastName。然后有命令生成一个控制器并查看它 - 这全部是自动的。然后添加一个弹簧安全核心插件。在本文档的第16/17章中,如我所示,列出哪些控制器操作是安全的,如人员/编辑。
谢谢!事实证明,Grails允许通过插件指定在桌面上工作的安全通道,但不适用于更新的Jetty版本(我也正在部署)。这个问题与如何打开SSL以及在Jetty 9.05/9.06(通过start.ini)和更新的Jetty 9.10版本之间指定证书的流量相结合,让我无法工作 - 无法正常工作。 – Ray
感谢您澄清要使用的正确版本 - 即9.06,因为9.10的配置机制已完成并且相关文档已更新。 – Ray