undertow ssl_SSL与WildFly 8和Undertow

undertow ssl

我一直在研究WildFly 8的一些安全性主题,偶然发现了一些没有很好记录的配置选项。 其中之一是用于新的Web子系统Undertow的TLS / SSL配置。 有很多关于较旧的Web子系统的文档,并且确实仍然可以使用,但是这里是使用新方法进行配置的简短方法。 undertow-ssl-configuration

生成密钥库和自签名证书

第一步是生成证书。 在这种情况下,它将是一个自签名的,足以显示如何配置所有内容。 我将使用普通的Java方式,因此您所需要的只是JRE keytool。 Java Keytool是密钥和证书管理实用程序。 它允许用户管理自己的公钥/私钥对和证书。 它还允许用户缓存证书。 Java Keytool将密钥和证书存储在所谓的密钥库中。 默认情况下,Java密钥库被实现为文件。 它使用密码保护私钥。 Keytool密钥库包含私钥和完成信任链并建立主证书的可信赖性所需的任何证书。

请记住,SSL证书具有两个基本目的:分发公共密钥和验证服务器的身份,以便用户知道自己不会将信息发送到错误的服务器。 只有当服务器由受信任的第三方签名时,它才能正确验证服务器的身份。 自签名证书是由自身而非受信任的权威机构签名的证书。

切换到命令行并执行以下命令,该命令已设置了一些默认值,并提示您输入更多信息。

$>keytool -genkey -alias mycert -keyalg RSA -sigalg MD5withRSA -keystore my.jks -storepass secret  -keypass secret -validity 9999

What is your first and last name?
  [Unknown]:  localhost
What is the name of your organizational unit?
  [Unknown]:  myfear
What is the name of your organization?
  [Unknown]:  eisele.net
What is the name of your City or Locality?
  [Unknown]:  Grasbrun
What is the name of your State or Province?
  [Unknown]:  Bavaria
What is the two-letter country code for this unit?
  [Unknown]:  ME
Is CN=localhost, OU=myfear, O=eisele.net, L=Grasbrun, ST=Bavaria, C=ME correct?
  [no]:  yes

确保将所需的“主机名”放入“名字和姓氏”字段中,否则在某些浏览器中永久接受此证书作为例外时,您可能会遇到问题。 Chrome对此没有任何问题。

该命令在执行的文件夹中生成一个my.jks文件。 将此复制到您的WildFly配置目录(%JBOSS_HOME%/ standalone / config)。

配置其他WildFly安全领域

下一步是在standalone.xml的WildFly安全领域部分中,将新的密钥库配置为ssl的服务器身份(如果使用的是-ha或其他版本,请对其进行编辑)。

<management>
        <security-realms>
<!-- ... -->
 <security-realm name="UndertowRealm">
                <server-identities>
                    <ssl>
                        <keystore path="my.keystore" relative-to="jboss.server.config.dir" keystore-password="secret" alias="mycert" key-password="secret"/>
                    </ssl>
                </server-identities>
            </security-realm>
<!-- ... -->

您已准备好进行下一步。

为SSL配置Undertow子系统

如果您使用默认服务器运行,请将https-listener添加到undertow子系统:

<subsystem xmlns="urn:jboss:domain:undertow:1.2">
         <!-- ... -->
            <server name="default-server">
            <!-- ... -->
                <https-listener name="https" socket-binding="https" security-realm="UndertowRealm"/>
<! -- ... -->

就这样,现在您可以连接到实例https:// localhost:8443 /的ssl端口了。 请注意,您会收到隐私错误(比较屏幕截图)。 如果需要使用完全签名的证书,则通常会从证书颁发机构获取PEM文件。 在这种情况下,您需要将其导入密钥库。 这个stackoverflow线程可能会帮助您。

翻译自: https://www.javacodegeeks.com/2015/01/ssl-with-wildfly-8-and-undertow.html

undertow ssl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值