我正在运行一个dropwizard服务器,以及一个利用Apache HttpClient 4.5.1的客户端.
给定一个包含公钥和私钥的.pfx文件,如何在服务器和客户端上构建我的密钥/信任存储以接受/信任并传递证书以进行身份验证?
我遇到的是客户端信任提供的服务器证书,但在服务器问候后,包含每个tls规范的证书请求,我的客户端无法找到合适的证书发回.
我的第一个想法是将密钥库和信任库作为相同的pfx文件运行服务器,但是当将pfx文件作为服务器中的信任存储加载时,java会抛出空的证书链错误.所以我不得不手动创建一个信任库.
以下是我认为允许整个过程成功的一般步骤:
这些步骤不起作用,我尝试了其他不那么明显的排列,但没有一个起作用.我接近这个的方式有什么明显的错误吗?有没有人对实际让它起作用有任何建议?
下面有很多细节(包括ssl调试日志)
PFX证书信息:(它是一个有效的公司签名证书,但我没有任何地方可信任的根CA,这就是为什么我只创建一个信任存储,以便我可以信任客户端证书).
$ openssl pkcs12 -info -in cert.pfx
Enter Import Password:
MAC Iteration 1
MAC verified OK
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2000
Bag Attributes
Microsoft Local Key set: <No Values>
localKeyID: 01 00 00 00
friendlyName: xxx
Microsoft CSP Name: Microsoft RSA SChannel Cryptographic Provider
Key Attributes
X509v3 Key Usage: 10
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----BEGIN …Run Code Online (Sandbox Code Playgroud)