gpt4 book ai didi

grails - jetty 9 : setting up the most basic SSL/https

转载 作者:太空宇宙 更新时间:2023-11-03 12:46:16 24 4
gpt4 key购买 nike

注意:如果您想查看此演示应用程序的行为,只需转至 www.collaborativepowernowinternational.us。在这里,选择 testssl.PersonController,你可以创建一个人。然后去编辑那个指定SSL channel 的人,这将给出一个重定向循环。

似乎 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

没有其他 Jetty 配置更改。然后我构建了最基本的 Grails 应用程序(有一个 Person 类),我在其中设置了某些 Controller 操作以确保安全,这在我使用较旧的内置 Jetty 版本(Grails 包含)的开发机器上运行良好。这只需包含 spring-security-core 然后将以下行添加到配置文件即可完成:

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

当我访问 person/edit 操作时,我在浏览器中得到一个重定向循环(使用部署的 WAR 文件到专用 CentOs 6 机器上的 Jetty 9)。这是使用 Jetty 9 附带的提供的 keystore ,只需取消注释 start.ini 中的行即可使用它。

我正在阅读的主要 Jetty SSL 配置页面是 here .我不清楚的是,更新 start.ini 文件是否足够?如果不是,那么如何在上一个链接中描述的 jetty-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>

不确定如何添加它们,但它们似乎也是上面 start.ini 文件行的副本。

你能帮我运行最基本的 Jetty SSL 吗?非常感谢。


如果不熟悉 Grails,可以简单地下载它,然后创建一个域类——为此有一个命令行选项。然后给它字段 String firstName,String lastName。然后是生成 Controller 和 View 的命令——这一切都是完全自动的。然后添加插件spring-security-core。在本文档的第 16/17 章中,正如我所展示的,when 列出了哪些 Controller 操作是安全的,例如 person/edit。

最佳答案

实际上,这里仅 Jetty 部分就足以使用我们在 Jetty 9.0.6 分发版中提供的默认试用 keystore 来工作。

只需上面的介绍就足以使 SSL 在 Jetty 中工作。我下载了 9.0.6 发行版并取消了对这些行的注释,它就可以工作了。好吧,我不得不进入 start.d/demo.ini 文件并使用 etc/jetty-ssl.xml 和 etc/jetty-https.xml 删除最后两行,因为它们会运行两次......但我离题了.

如果您启动 Jetty,您可以导航到 https://localhost:8443,它会提示证书不受信任,然后加载 Jetty 分发页面。

基于此,我会说这可能是某种 grails 配置问题,遗憾的是我也不知道答案,抱歉。

关于grails - jetty 9 : setting up the most basic SSL/https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19236628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com