建立与接受者的SSL通信不需要QuickFIX启动器证书

时间:2015-10-02 09:35:37

标签: ssl quickfix

我一直在使用QuickFIX开发客户端API,我计划使用SSL和基于证书的身份验证。我通过以下方式为接受者和发起者生成自签名证书:

1)生成并导出服务器/接受者证书:

keytool -genkeypair -keyalg RSA -keysize 2048 -alias server -keystore server.jks
keytool -export -alias server -file server.cer -keystore server.jks

2)生成并导出客户端/启动器证书:

keytool -genkeypair -keyalg RSA -keysize 2048 -alias client -keystore client.jks
keytool -export -alias client -file client.cer -keystore client.jks

3)将服务器/接受者证书导入客户端密钥库:

keytool -import -v -trustcacerts -alias server -file server.cer -keystore client.jks

4)将客户端/启动器证书导入服务器/接受者密钥库:

keytool -import -v -trustcacerts -alias client -file client.cer -keystore server.jks

接受者配置:

SocketUseSSL=Y
SocketKeyStore=server.jks
SocketKeyStorePassword=password

发起人配置:

SocketUseSSL=Y
SocketKeyStore=client.jks
SocketKeyStorePassword=password

一切似乎都运行良好,数据正在加密。但是,如果我删除了启动器的client.jks密钥库文件,我将获得一个QuickFIX日志条目,说明“client.jks:找不到密钥库,使用空密钥库”。奇怪的是,发起者仍然能够连接并建立有效的FIX会话。因为没有提供有效的证书,我希望立即删除连接。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

默认情况下不需要客户端证书,您必须设置: NeedClientAuth = Y