我有一个具有多个端点的 JBoss 应用程序。所有这些端点都应该通过单向 SSL (HTTPS) 对任何用户可用,除了特定端点(我们称之为/app/sensitive),它只能由特定机器访问(即 2 向 SSL)。 有没有办法同时为 1/2 路 SSL 配置 JBoss,根据请求的端点进行区分?
最佳答案
我不确定,因为没有测试过,但看起来你可以 一个端口上的单向 SSL 和另一个端口上的双向 SSL。
来自 standalone.xml(或 domain.xml):
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
...
<connector name="one-way-https" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" socket-binding="one-way-https" enable-lookups="false" secure="true">
</connector>
<connector name="two-way-https" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https" socket-binding="two-way-https" enable-lookups="false" secure="true">
<ssl name="two-way-ssl" key-alias="my-identity" password="${VAULT::Jboss_config::store_password::1}" certificate-key-file="../standalone/configuration/cert/JBoss_Identity.jks"/>
</connector>
...
</subsystem>
<socket-binding-group name="standard-sockets" ...>
...
<socket-binding name="one-way-https" port="8443"/>
<socket-binding name="two-way-https" port="8453"/>
...
</socket-binding-group>
如果你要测试它,请告诉我它是否是解决方案,因为在不久的将来我必须做同样的事情,只是现在没有时间检查它......谢谢。
顺便说一下 <ssl>
您可以定义除默认信任库和 keystore 以外的元素以在该端口上使用。
我希望它会起作用。
关于java - JBoss 1 路和 2 路 SSL 同时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42379788/