java - 关闭 JiraRestClient 的 ssl 证书验证

标签 java rest ssl-certificate jira jira-rest-java-api

我正在尝试通过 atlassian Rest api java 框架连接到我的 Jira:

JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
JiraRestClient client = factory.createWithBasicHttpAuthentication(uri, userName, password);

但这会导致错误:

javax.net.ssl.SSLHandshakeException:一般 SSLEngine 问题

PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

我认为发生这种情况是因为我为 Jira 使用了自签名证书。有没有办法至少出于开发目的而关闭 JiraRestClientFactory 的证书验证?

最佳答案

我知道您在寻找不使用信任存储的解决方案。但现在您的系统将只信任任何证书,并且在生产环境中部署时您必须禁用您的解决方法。

我建议建议以下解决方案:

正如您所注意到的 - 这是由于您的自签名 ssl 证书未在信任存储中注册造成的。但是,您不应信任所有证书,而只需将您自己签署的证书添加到 java 信任存储中。解决起来既简单又快速。

keytool -genkeypair -alias alias_name -keyalg RSA -validity #_of_days -keysize 2048 -keystore path_to_keystore_file

可以在以下位置找到默认信任存储

{JAVA_HOME}/jre/lib/security/cacerts

您还可以创建自定义信任存储并在启动应用程序时将路径作为参数传递。

有关信任存储的更多信息和示例可以在此处找到:

https://docs.oracle.com/cd/E54932_01/doc.705/e54936/cssg_create_ssl_cert.htm#CSVSG178

关于java - 关闭 JiraRestClient 的 ssl 证书验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49099610/

相关文章:

azure - 为 Nginx docker 容器启用 HTTPS

java - 替换哈希表的最安全选择?

java - 如何通过 LDAP 在 AD 中启用用户?

java - 我是否需要显式释放使用 CDI 创建的上下文 JDialog?

rest - 如何设计 RESTful API 端点以获取具有不同数据类型的不同字段

node.js - 如何使用 node.js 实现安全的 REST API

java - 在 JBoss 7.5.0 上使用 REST 服务时,XML 文件处理不正确

node.js - npm 信任自签名证书

Tomcat SSL : No trusted certificate found

java - 二维数组图 block 列表