저는 QuickFIX/J를 사용하여 Bloomberg Server에 연결하는 애플리케이션을 작성했습니다. 최근 Bloomberg는 CA 인증서 유효성 검사를 서버에 추가했으며 핸드 셰이크를 위해 추가 CA 인증서 파일을 제공합니다.QuickFIX/J CA 인증서 유효성 확인
내 응용 프로그램이 SSL을 사용하여 연결되었으며 Bloomberg 측에서 CA 인증서 유효성 검사를 사용하지 않도록 설정하면 응용 프로그램이 서버에 성공적으로 연결되어 메시지를 가져옵니다. CA 유효성 검사를 사용할 때 핸드 셰이크가 실패했습니다.
다음은 내가 시도한 단계입니다.
- 이전에 나는
ImportKey
자바 클래스를 사용하여 인증서와 키를 추가했습니다. 여러 인증서를 추가하도록 변경했습니다. 필요한 경우 Java 클래스 을 게시 할 수 있습니다. - openssl s_client를 사용하여 서버에 연결할 때 서버에 성공적으로 연결됩니다.
응용 프로그램 수준에서 변경해야 할 사항이 있습니까? 구성? 아니면 Java 키 저장소 수준에서 수행 할 작업이 있습니까? 아래에 추가 연결할 때
오류 메시지가 온다 :
20160823-06 : 04 : 15 FIX.4.4 : XXXX-> XXXX, 오류> (분리 : 소켓 예외 (/XXXX.XXXX합니다. XXX.XX : 20237) : javax.net.ssl.SSLHandshakeException :. SSL 핸드 셰이크가 실패) 성공적으로 sessionId가에 대한 로그 아웃 : FIX.4.4 : XXXX-> XXXX
어떤 도움
을 감사합니다!
구성 :
[default]
# Settings which apply to all the Sessions.
ConnectionType=initiator
LogonTimeout=86400
ResetOnLogon=Y
UseDataDictionary=Y
MaxLatency=240
#StartTime=00:00:00
#EndTime=00:00:00
#StartTime=02:30:00
#EndTime=12:30:00
StartTime=02:21:00
EndTime=12:21:00
HeartBtInt=30
ReconnectInterval=5
[session]
# Settings specifically for one session
BeginString=FIX.4.4
SocketConnectHost=xxx.xxx.xxx.xxx
SocketUseSSL=Y
SocketKeyStorePassword=importkey
CheckLatency=N
#SendResetSeqNumFlag=Y
# new setups
FileLogHeartbeats=Y
##----- CAPS Configuration ---------##
FileStorePath=/etc/bloomburg-live/msgs
FileLogPath=/etc/bloomburg-live/logs
DataDictionary=/etc/bloomburg-live/conf/FIX44.xml
SocketKeyStore=/root/.keystore
TargetCompID=BLPSTP
SocketConnectPort=xxxxx
SenderCompID=CAPSTP
# log configuration
FileIncludeMilliseconds=Y
FileIncludeTimeStampForMessages=Y
ScreenLogShowHeartBeats=Y
#Filter heartbeats from output (both incoming and outgoing)
PS - CA 인증서 유효성 검사없이 응용 프로그램 작동합니다. CA 인증서 유효성 검사를 활성화하면 오류가 발생합니다.
Downvote? 그게 왜? – ambarox
아마도 인증서를 처리하는 코드 조각을 보여 주어야합니다. –
코드 단편 구성 만 있습니다. ca 인증서를 처리 할 구성이 없습니다. – ambarox