gpt4 book ai didi

java - 在 Undertow 中启用 HTTPS

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:45:25 25 4
gpt4 key购买 nike

我们有一个可用的 Apache mod_ssl 配置。我想为 Undertow 启用 HTTPS 支持,以便它同时监听 http 和 https,从而避免对 Apache 的需求。

我研究了 Undertow 的 javadoc。 Undertow.Builder 类有两个具有以下签名的 addHttpsListener 方法:

   public Builder addHttpsListener(int port, String host, 
KeyManager[] keyManagers, TrustManager[] trustManagers);
public Builder addHttpsListener(int port, String host,
SSLContext sslContext) {

所以看起来我可以在使用 Builder API 引导 Undertow 时使用这些,例如

Undertow server = Undertow.builder()
.addHttpsListener(8443, "localhost", sslContext)
.build();

我不确定如何创建 SSLContext 变量,或者如何配置 KeyManagers 和 TrustManagers。 有了 mod_ssl 使用的证书文件,我该如何继续为 Undertow 启用 HTTPS?

更新:

根据 hwellmann 的回答,我重用了 SslContextFactory.createSslContext() 方法。在此之前,我必须将我的公钥/私钥对转换为 PKCS12 格式并将其导入 Java keystore 。

下面提供 SSL 转换转换/导入命令(取自 herehere ),希望这些对任何人都有用:

# Convert to PKCS12    
$ openssl pkcs12 -export -out output_cert.pfx -inkey input_cert.key -in input_cert.crt -certfile intermediate.crt

# Import into Java keystore
$ keytool -v -importkeystore -srckeystore output_cert.pfx -srcstoretype PKCS12 -destkeystore output_store.jks -deststoretype JKS

最佳答案

这并不是 Undertow 特有的,它只是一个从带有证书的 keystore 构建 SSL 上下文的问题。

参见 SslContextFactory.java有关与 Undertow 一起使用的示例。

关于java - 在 Undertow 中启用 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27906682/

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