You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在HapiContext(Hapi-base 2.3)中配置SSL/TLS连接?

问题

我们在Spring Cloud Data Flow流中使用的一款Spring Boot应用,当前通过HapiContext构建HL7客户端,以非SSL/TLS的TCP连接发送HL7消息,代码如下:

@Autowired
HapiContext context;

Connection connection = context.newClient(host, Integer.parseInt(port), false);
 
// The initiator which will be used to transmit our message
Initiator initiator = connection.getInitiator();

Message response = initiator.sendAndReceive(adtMessage);

现需将该连接改为SSL/TLS加密方式,经多方检索未找到相关配置文档,求可行的实现方案。

实现方案

1. 核心改造思路

HAPI HL7的HapiContext原生支持SSL/TLS配置,核心是通过SslContextFactory定义SSL参数,并在创建连接时开启SSL模式。

2. 具体代码实现

场景一:服务端使用公网可信CA证书

如果服务端证书由主流CA签发,直接开启SSL模式即可,JVM默认信任库会自动验证证书:

@Autowired
HapiContext context;

// 将newClient第三个参数设为true,开启SSL/TLS
Connection connection = context.newClient(host, Integer.parseInt(port), true);

Initiator initiator = connection.getInitiator();
Message response = initiator.sendAndReceive(adtMessage);

场景二:服务端使用自签名/私有CA证书

如果服务端用的是自签名证书或私有CA签发的证书,需要手动加载信任库:

@Autowired
HapiContext context;

// 1. 配置SSL上下文工厂
SslContextFactory sslContextFactory = new SslContextFactory();
// 指定信任库路径(示例为classpath下的truststore.jks)
sslContextFactory.setTrustStorePath("classpath:truststore.jks");
// 设置信任库密码
sslContextFactory.setTrustStorePassword("your-truststore-pass");
// 若需双向SSL认证,额外配置客户端密钥库
// sslContextFactory.setKeyStorePath("classpath:keystore.jks");
// sslContextFactory.setKeyStorePassword("your-keystore-pass");

// 2. 将SSL上下文注入HapiContext
context.setSslContextFactory(sslContextFactory);

// 3. 创建SSL连接
Connection connection = context.newClient(host, Integer.parseInt(port), true);

Initiator initiator = connection.getInitiator();
Message response = initiator.sendAndReceive(adtMessage);

3. 关键注意事项

  • newClient的useTls参数设为true是开启SSL的核心开关。
  • 信任库文件需放置在Spring Boot应用的src/main/resources目录下(或使用绝对路径)。
  • 双向SSL认证场景下,需同时配置客户端密钥库,服务端会验证客户端身份。

内容的提问来源于stack exchange,提问作者Trainee Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:35:23