1
SSL을 사용하여 TCP 연결을 구성하는 동안 TcpSSLContextSupport
의 자체 인스턴스 인 DefaultTcpSSLContextSupport
을 사용하고있는 스프링 문서를 기반으로 클라이언트 인증서를 초기화해야합니다. 여기에 우리 콩 설정입니다 :인증서를 제공 할 필요가 없을 때 SSL 연결을 위해 TcpNetClientConnectionFactory를 구성하는 올바른 방법은 무엇입니까?
private static final int SERIALIZER_HEADER_SIZE = 2;
@Bean
public ByteArrayLengthHeaderSerializer byteArrayLengthHeaderSerializer() {
return new ByteArrayLengthHeaderSerializer(SERIALIZER_HEADER_SIZE);
}
@Bean
public AbstractClientConnectionFactory tcpClientConnectionFactory() {
TcpNetClientConnectionFactory connFactory =
new TcpNetClientConnectionFactory(props.getUrl(), props.getPort());
connFactory.setSerializer(byteArrayLengthHeaderSerializer());
connFactory.setDeserializer(byteArrayLengthHeaderSerializer());
connFactory.setSoTimeout(props.getSoTimeout());
if (props.isUseSSL()) {
connFactory.setTcpSocketFactorySupport(new DefaultTcpNetSSLSocketFactorySupport(() -> {
return SSLContext.getDefault();
}));
}
return connFactory;
}
클라이언트 인증서 이후 알려진 인증서되고 우리는 우리 자신의 키 스토어 및 신뢰를 제공 할 필요가 없습니다, 이것은 TCP 연결을 만들 때 제대로 SSL을 구성하는 올바른 방법인가?
참고. 우리는 [여기에 테스트 케이스가 있습니다.] (https://github.com/spring-projects/spring-integration/blob/master/spring-integration-ip/src/test/java/org/springframework/integration/ip/tcp /connection/SocketSupportTests.java#L339-L346). 특히 클라이언트 인증을 가능하게합니다. –
두 가지 모두 감사합니다. 테스트 사례가 매우 명확합니다. :) –