gpt4 book ai didi

java - 将 HttpClient 与 SSL 和证书结合使用

转载 作者:行者123 更新时间:2023-11-29 04:02:07 24 4
gpt4 key购买 nike

虽然我已经熟悉 HTTPS 和 SSL 的概念,但我最近开始了一些开发,发现我有点困惑。

要求是我编写一个小型 Java 应用程序,该应用程序在连接到扫描仪的机器上运行。当文档被扫描时,它会被拾取,文件(通常是 PDF)通过互联网发送到我们的应用程序服务器,然后由该服务器处理它。我使用 Apache Commons 库和 HTTPClient 编写了应用程序。

第二个要求是通过 SSL 连接,需要证书。按照 HTTPclient 页面上的指导,我使用来自贡献页面的 AuthSSLProtocolSocketFactory。

构造函数可以获取 keystore 、 keystore 密码、信任库和信任库密码。作为初始测试,我们的 DBA 在我们的一个开发网络服务器上启用了 SSL,并为我提供了一个 .p12 文件,当我将其导入 IE 时,我可以成功连接。

我对 keystore 和信任库以及使用 key 工具需要采取的步骤感到有点困惑。我尝试将 p12 导入 keystore 文件但出现错误:

keytool error: java.lang.Exception: Input not an X.509 certificate

我遵循了将 p12 导入 Internet Explorer 并导出为 .cer 的建议,然后我可以将其成功导入 keystore 。当我将它作为 AuthSSLProtocolSocketFactory 的 keystore 参数提供时,我得到了一个无意义的错误,但如果我将它作为信任库来尝试,它似乎读起来很好,但最终我得到了

Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate

我不确定我是否错过了一些步骤,我完全误解了 SSL 和相互身份验证,或者这是服务器端的错误配置。

谁能提供建议或指出可能帮助我解决这个问题的资源?

最佳答案

keystore 保存您的私钥和相关证书。信任库保存您信任的证书,因此可用于证书路径构建和验证。

以下是一些可能有用的链接:

java.lang.Exception: Input not an X.509 certificate

Import private key and certificate into Java Key Store

Configuring Keystores and Truststores

关于java - 将 HttpClient 与 SSL 和证书结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2774722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com