当前位置: 首页 > 知识库问答 >
问题:

使用。p12文件进行SSL-使用Spring Boot

林涵映
2023-03-14
keytool -importkeystore -srckeystore uat_client.p12 -destkeystore store.keys -srcstoretype pkcs12 -alias myownkeyname 
public void someMethod()
{
    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders httpHeaders = new HttpHeaders();

    String uri = "https://xx.net/api/v2/somemethod";

    httpHeaders.setContentType(MediaType.APPLICATION_JSON);

    String result = restTemplate.getForObject(uri, String.class);

    System.out.println("Result " + result);
}

共有1个答案

易星宇
2023-03-14

若要配置SpringRESTTemplate以在https连接中使用客户端证书,请执行以下步骤:

@Bean
public RestTemplate restTemplate() {
    KeyStore clientStore = KeyStore.getInstance("PKCS12");
    clientStore.load(new FileInputStream("certfile-path"), "certificate-password".toCharArray());

    SSLContextBuilder sslContextBuilder = new SSLContextBuilder();
    sslContextBuilder.useProtocol("TLS");
    sslContextBuilder.loadKeyMaterial(clientStore, "certificate-password".toCharArray());
    sslContextBuilder.loadTrustMaterial(new TrustSelfSignedStrategy());

    SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContextBuilder.build());
    CloseableHttpClient httpClient = HttpClients.custom()
            .setSSLSocketFactory(sslConnectionSocketFactory)
            .build();
    HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
    return new RestTemplate(requestFactory);
}

并注入resttemplate,以便使用:

@Autowired
RestTemplate restTemplate;

public void someMethod() {
    HttpHeaders httpHeaders = new HttpHeaders();
    String uri = "https://xx.net/api/v2/somemethod";
    httpHeaders.setContentType(MediaType.APPLICATION_JSON);
    String result = restTemplate.getForObject(uri, String.class);
    System.out.println("Result " + result);
}

就是这样。希望它得到解决。

 类似资料:
  • 问题内容: 我正在将Java命令行应用程序打包在一个使用Google的某些API的单个JAR文件中。 我需要通过私钥“ Credentials.p12”设置一个GoogleCredential对象。 现在,我可以使其工作,但是文件“ Credentials.p12”位于打包的JAR文件外部。 如何使用JAR内部的p12文件使其工作? 从本文档中,我认为我可以使用的唯一其他选择是使用PrivateK

  • 我有一个带有以下代码的p12文件上传功能: 然后我想创建一个函数来删除p12文件,代码如下: 当我运行结果时,出现了一个错误: 有没有办法成功删除文件? 更新:我发现了这个问题,显然是因为这个函数中使用了p12文件: 有没有办法删除p12文件?

  • 问题内容: 我想使用ElasticSearch搜索文件名(而不是文件的内容)。因此,我需要找到文件名的一部分(完全匹配,没有模糊搜索)。 示例: 我有以下名称的文件: 现在,我要搜索以获取前两个文件。 搜索或应返回除最后一个文件名以外的所有文件名。 如何使用ElasticSearch做到这一点? 这是我测试过的,但始终返回零结果: 问题答案: 您粘贴的内容存在各种问题: 1)不正确的映射 创建索引

  • 问题内容: 我想用AngularJS提取一个文件: HTML: javascript: 如何在AngularJS 函数上绑定输入文件操作?我该如何处理之后上传的文件? 问题答案: Angular尚不支持 input [type = file]的* ng-change ,因此您必须自己滚动onchange的实现。 * 首先,在HTML中,为onchange定义Javascript,如下所示: 然后在

  • 我正在尝试使用Rxjava解决一个经典的文件验证过程。我有一个带有正常标头的CSV文件和另一个标头列表,我需要验证它们是否属于所选数据类型或值是否为空。 我已经用普通java实现了这一点,但我想让我的验证代码更具反应性。这就是我到目前为止所取得的成就。 在这里,我有3个可观察对象要组合和验证,在验证失败的第一个实例(行)中。 以下是我想使用的示例数据: 标题: 名字|姓|性别|出生|出生|出生|出

  • 问题内容: 是否有使用JavaScript完成的本地文件操作?我正在寻找一种解决方案,该解决方案可以像安装Adobe AIR那样在没有安装空间的情况下实现。 具体来说,我想从文件中读取内容并将这些内容写入另一个文件。在这一点上,我不担心获得权限,只是假设我已经对这些文件拥有完全权限。 问题答案: 如果用户通过选择文件,则可以使用File API读取和处理该文件。 设计不允许读取或写入任意文件。这违