我有一个.cer自签名证书,使用它我需要向JAVA中的Webservice发出GET/POST请求。我对这个概念完全陌生。我已经搜索了很多关于如何做到这一点,但没有任何帮助。虽然这样做,我遇到了java密钥库&信任库&我想这可以用来完成我的任务。有人能够帮助我理解Java Keystore的工作原理。请建议是否有其他方式来做到这一点。任何形式的帮助表示赞赏。提前致谢。需要使用.cer证书执行GET&POST HTTPS请求
回答
基本上,密钥库是“放置”(通常是文件),您可以在其中放置数字证书及其相应的私钥(只有在您是证书所有者时才会拥有私钥) - 这是一个简化解释,但我认为现在已经足够了)
当您获取/发布到https URL时,这意味着您正在访问的服务器拥有自己的数字证书。要成功访问它,您需要信任该证书。在Java中,您可以通过创建一个包含证书和相应链的密钥库来实现这一点(每个证书都由另一个拥有证书的实体签名,或者是自签名的),因此您可以获得签名的证书,签名人等等,直到你得到一个自签名的证书,并且所有这些证书都是链 - 你需要把所有的链证书放在密钥库中) 这个特定的密钥库被称为信任库(包含所有可信证书)。
您拥有的自签名证书是服务的证书吗?如果是这样,只需创建一个密钥存储并将其设置为您的信任存储。
如何创建一个密钥:https://docs.oracle.com/cd/E19509-01/820-3503/ggfen/index.html(或搜索密钥库类的实例)
如何设置信任库:java SSL and cert keystore
非常感谢您提供的信息丰富的答案。我拥有的证书用于客户端身份验证。许多客户会打电话给web服务,并且在他们这样做时应该自己进行身份验证。因此,在这种情况下,我应该如何添加我的证书以便通信成功,并且我从webservice获得响应 – Kavitha
客户端证书必须位于不同的密钥存储区中并设置在另一个属性中(请参阅http://stackoverflow.com/questions/5871279/java-ssl-and-cert-keystore/5871352#5871352,它是javax.net.ssl.keyStore和javax.net.ssl.keyStorePassword)。但是你也需要私钥,否则客户端认证不会工作 – 2017-02-26 09:57:16
再次。我现在明白的是,我只有公钥和证书(格式为.cer)。我没有拥有证书。我工作的公司给了它。但是,当我使用这个.cer文件手动调用webservice时,我可以访问它。将导入的证书导入到Chrome的个人存储中,并使用Postman扩展发送请求。客户端身份验证如何在没有私钥的情况下工作?你的答复我需要私钥在java.I自动化将不得不从业主问。我相信我会得到它,但那是不正确的做法。请提出一些建议! – Kavitha
- 1. 使用.cer证书进行HTTPS请求
- 2. 需要发送https GET请求与oauth
- 3. JAVA - 使用SSL证书和HTTPS的简单GET请求
- 4. 执行HTTP POST请求,然后执行HTTP GET请求
- 5. 对令牌执行https POST请求
- 6. Laravel,$ .ajax POST执行GET请求
- 7. python post证书请求
- 8. 如何使用VBScript POST POST HTTPS请求
- 9. 使用自签名证书在iOS 9中进行HTTPS请求
- 10. 将客户端证书插入HTTPS POST请求
- 11. 更改HTTP POST请求HTTPS POST请求:
- 12. 执行GET请求 - 使用Javascript
- 13. 请参阅HTTPS POST/GET值
- 14. HttpClient POST请求https:
- 15. Facebook图使用python请求模块 - 证书验证失败的GET请求
- 16. 证书:.cer足够?
- 17. HTTPS请求扭曲,检查证书
- 18. PowerShell HTTPS GET使用证书库中的客户端证书
- 19. 如何在Android中执行安全的HTTP(HTTPS)GET和POST请求?
- 20. 使用POST cURL请求缓慢执行
- 21. 如何在Java中使用HttpClient进行HTTPS请求,无需进行证书认证或主机名验证?
- 22. 验证请求是否为GET/POST
- 23. get和post请求用VB6.0
- 24. 执行GET请求RunKeeper
- 25. HTTPS网站的SSL证书要求
- 26. 使用JMeter API调用GET/POST请求
- 27. 需要将证书发送到HTTPS URL
- 28. PhpStorm - POST请求不起作用,GET请求在本地主机上执行
- 29. 铬:GET请求取消CORS HTTPS请求
- 30. 使用Python中的请求在JSON中进行GET和POST POST
http://stackoverflow.com/questions/1666052/java-https- client-certificate-authentication?noredirect = 1&lq = 1 – 2017-02-25 14:37:09
https://www.mkyong.com/java/java-https-client-httpsurlconnection-example/ – 2017-02-25 14:38:05
http://stackoverflow.com/questions/10968708/java-simple -get-request-using-ssl-certificate-and-https – 2017-02-25 14:38:38