首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于证书的身份验证,客户端共享证书到服务器

基于证书的身份验证,客户端共享证书到服务器
EN

Stack Overflow用户
提问于 2020-02-04 09:02:17
回答 1查看 66关注 0票数 0

服务器应用程序需要共享SSL证书。第一步:

  1. I针对部署我的应用程序的域IP地址(没有域名)生成了一个自签名证书。
  2. 我将证书共享给服务器。他们将证书保存在他们的信任存储中。
  3. 服务器正在验证对IP地址的请求。如果请求不是来自IP地址,则它们将阻止它们。

我的问题是:

我有一个弹簧引导应用程序。是否需要对我生成的证书的代码进行任何更改。如果是,那么变化是什么。

EN

回答 1

Stack Overflow用户

发布于 2020-02-05 12:48:00

是的,您需要对代码进行更改。您需要加载您的密钥存储库(带键盘),如果需要,还需要将您的信任存储加载到您的http客户机中。大多数http客户端都需要一个SSLContext,因此这对您来说就足够了:

代码语言:javascript
复制
KeyStore keyStore = ...;
TrustStore trustStore = ...;

KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, keyStorePassword);

TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(trustStore);

SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null);

// Spring provides by default RestTemplate as HTTP Client, this client is an Apache HTTP Client wrapper
// The setup would be:

HttpClient httpClient = HttpClient.newBuilder();
        .sslContext(sslFactory.getSslContext());
        .build();

HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60053827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档