我一直在使用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
Run Code Online (Sandbox Code Playgroud)
2)生成并导出客户端/启动器证书:
keytool -genkeypair -keyalg RSA -keysize 2048 -alias client -keystore client.jks
keytool -export -alias client -file client.cer -keystore client.jks
Run Code Online (Sandbox Code Playgroud)
3)将服务器/接受者证书导入客户端密钥库:
keytool -import -v -trustcacerts -alias server -file server.cer -keystore client.jks
Run Code Online (Sandbox Code Playgroud)
4)将客户端/启动器证书导入服务器/接受者密钥库:
keytool -import -v -trustcacerts -alias client -file client.cer -keystore server.jks
Run Code Online (Sandbox Code Playgroud)
接受器配置:
SocketUseSSL=Y
SocketKeyStore=server.jks
SocketKeyStorePassword=password
Run Code Online (Sandbox Code Playgroud)
启动器配置:
SocketUseSSL=Y
SocketKeyStore=client.jks
SocketKeyStorePassword=password
Run Code Online (Sandbox Code Playgroud)
一切似乎都运行良好,数据正在加密.但是,如果我删除了启动器的client.jks密钥库文件,我将得到一个QuickFIX日志条目,说"找不到client.jks:keystore,使用空密钥库".奇怪的是,发起者仍然能够连接并建立有效的FIX会话.因为没有提供有效的证书,我希望立即删除连接.我错过了什么吗?
| 归档时间: |
|
| 查看次数: |
1762 次 |
| 最近记录: |