双向SSL认证证书 生成 jks 步骤, java用jks 发送http请求 方法

这篇具有很好参考价值的文章主要介绍了双向SSL认证证书 生成 jks 步骤, java用jks 发送http请求 方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


)

准备材料

1.证书的 cert.pem 文件
2.key文件
3.key的密钥

证书处理步骤

这里只显示 liunx 命令 ,windows 的同学可自查

合并客户端证书 pem 和 key 到一个 pem 中

cat xxx.cert.pem xxx.key > xxx.fullchain.pem

生成PKCS12 的 keystore

openssl pkcs12 -export -in xxx.fullchain.pem -out xxx.fullchain.p12 -name xxx-cert -noiter -nomaciter

这个命令会提示输入3次密码 ,第一次输入xxx.key的密码 ,
第二次提示输入导出密码 自己设就行 ,这里用 changeit
注意: 第一次 不是自己设的 需要用 key文件的密钥

转换 .p12 文件为 .jks 格式

这里会用 上一步骤的导出密码 这里用 changeit

keytool -importkeystore -srckeystore xxx.fullchain.p12 -srcstoretype pkcs12 -srcalias xxx-cert -srcstorepass changeit -destkeystore xxx.jks -deststoretype jks -deststorepass changeit -destalias xxx-cert -destkeypass changeit

获取服务器证书

echo -n | openssl s_client -connect  baidu.com:443 -servername  baidu.com -key xxx.key -cert xxx.cert.pem | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | tee "server.crt"

导入服务器证书 server 到客户端的 truststore 里

为了简便,这里客户端的truststore也用之前的xxx.jks,所有密码都用changeit,当然也可以用一个专属的keystore文件。
但 要注意 ,如果这个服务器没有导入过证书 ,用别的服务器生成的jks 可能会导致证书无效 , 需要在新服务器重新生成

keytool -import -alias servercert -file server.crt -keypass changeit -keystore xxx.jks -storepass changeit

上述 步骤 结束后 会得到 xxx.jks 文件 方便java 请求

下面送上 java 用证书调用http请求代码

pom 依赖

pom依赖

<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
</dependencies>

测试接口调用的代码

代码送了 工具类就不送了 自己生成一个就行 ,实在不行的留言文章来源地址https://www.toymoban.com/news/detail-737725.html

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.util.EntityUtils;

import javax.net.ssl.SSLContext;
import java.io.File;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;

public class TestApple {

public static void main(String args[]) throws UnrecoverableKeyException, CertificateException, NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException {


String url = "https://baidu.com";
String jskPath = "E:\\test\\apple\\xxx.jks";

SSLContext sslContext = SSLContextBuilder.create()
.loadKeyMaterial(new File(jskPath),"changeit".toCharArray(),"changeit".toCharArray())
.loadTrustMaterial(new File(jskPath),"changeit".toCharArray()).build();
HttpClient client = HttpClients.custom().setSslcontext(sslContext).build();

String result = null;
HttpGet httpGet = new HttpGet(url);
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(60000).setConnectTimeout(60000).build();
httpGet.setConfig(requestConfig);
try {
HttpResponse response = null;
try {
response = client.execute(httpGet);
} catch (IOException e) {
e.printStackTrace();
}
HttpEntity entity = response.getEntity();
try {
result = EntityUtils.toString(entity, "UTF-8");
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
// logger.error(e);
}
} finally {
httpGet.abort();
}
}
}

到了这里,关于双向SSL认证证书 生成 jks 步骤, java用jks 发送http请求 方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SSL】ssl证书简介、ssl证书生成工具与ssl证书生成步骤

    SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。 SSL证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。 SSL证书通过在客户端浏览

    2024年02月10日
    浏览(35)
  • SpringBoot项目如何部署SSL证书 (JKS格式)

    1. 获取 SSL 证书和私钥 首先,你需要获取有效的 SSL 证书和私钥。SSL 证书是一种用于加密通信的数字证书,它可以通过购买商业 SSL 证书或使用免费的 Let’s Encrypt 证书获得。请确保你拥有证书文件和与之对应的私钥文件,这通常是以 .pem 和 .key 结尾的文件或者是jks格式的,本

    2024年02月07日
    浏览(75)
  • Tomcat配置ssl证书(jks类型)实现HTTPS

    certificateKeystoreFile:证书地址,可使用绝对路径,也可以配置相对路径 certificateKeyAlias:生成证书时输入的别名(选填) certificateKeystorePassword:生成证书时输入的密钥,如果没有空着  

    2024年02月03日
    浏览(36)
  • 【ssl认证、证书】openssl genrsa 命令详解、生成和查看密钥内容

    相关文章: //-----------Java SSL begin---------------------- 【ssl认证、证书】SSL双向认证和SSL单向认证的区别(示意图) 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系 【ssl认证、证书】SSL双向认证java实战、keytool创建证书 【ssl认证、证书】Wireshark抓包分析 【s

    2024年02月11日
    浏览(27)
  • JAVA使用RestTemplate类实现SSL双向/单向认证(国际)

    以管理员身份打开Windows PowerShel,通过cd(与linux系统类似)命令进入到JDK的bin目录:如C:Program FilesJavajdk1.8.0_221jrebin,找到目录下有keytool.exe就是正确进入目录了 参数说明: genkey 表示要创建一个新的密钥 alias 表示 keystore 的别名、 keyalg 表示使用的加密算法是 RSA ,一种非

    2024年02月15日
    浏览(25)
  • Java get/post的https请求忽略ssl证书认证

    unable to find valid certification path to requested target 工具类 使用方法

    2024年02月11日
    浏览(39)
  • 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系

    相关文章: //-----------Java SSL begin---------------------- 【ssl认证、证书】SSL双向认证和SSL单向认证的区别(示意图) 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系 【ssl认证、证书】SSL双向认证java实战、keytool创建证书 【ssl认证、证书】Wireshark抓包分析 【s

    2024年02月10日
    浏览(33)
  • Python向带有SSL/TSL认证服务器发送网络请求小实践(附并发http请求实现asyncio+aiohttp)

    最近工作中遇到这样的一个场景:给客户发送文件的时候,为保证整个过程中,文件不会被篡改,需要在发送文件之间, 对发送的文件进行签名, 而整个签名系统是另外一个团队做的, 提供了一个接口服务完成签名,但访问这个接口需要提供他们团队提供的证书链先进行认

    2024年04月16日
    浏览(26)
  • SSL双向认证与单向认证

    参考:https://www.cnblogs.com/bluestorm/p/10571989.html整理 双向认证 SSL 协议要求服务器和用户双方都有证书。单向认证 SSL 协议不需要客户拥有CA证书 流程图: ①客户端–服务器 客户端SSL协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各

    2024年02月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包