如何使用Java中的X.509证书签署HTTP请求?

Run*_*une 6 java https http client-certificates x509certificate

如何使用Java执行HTTP请求并使用X.509证书对其进行签名?

我通常用C#编程.现在,我想要做的是类似于以下内容,仅在Java中:

 private HttpWebRequest CreateRequest(Uri uri, X509Certificate2 cert) 
 {
     HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
     request.ClientCertificates.Add(cert);
     /* ... */
     return request;
 }
Run Code Online (Sandbox Code Playgroud)

在Java中我创建了一个java.security.cert.X509Certificate实例,但我无法弄清楚如何将它与HTTP请求相关联.我可以使用java.net.URL实例创建HTTP请求,但我似乎无法将我的证书与该实例关联(我不确定使用java.net.URL是否合适).

Pet*_*ton 1

我推荐Apache Commons 的开源HttpClient库。涵盖了这个用例和许多其他用例。