当前位置: 首页 > news >正文

沈丘做网站去哪里宁波网站优化公司价格

沈丘做网站去哪里,宁波网站优化公司价格,织梦网站后台管理教程,网站建设 模板中心背景 远程调用第三方服务时,之前都是双向认证,服务器提供jks格式的keystore证书,客户端配置好即可。 今天遇到个奇葩需求,服务器只给根公钥证书(root.crt),还是第三方合法证书,要求单向认证,客户…

背景

远程调用第三方服务时,之前都是双向认证,服务器提供jks格式的keystore证书,客户端配置好即可。
今天遇到个奇葩需求,服务器只给根公钥证书(root.crt),还是第三方合法证书,要求单向认证,客户端校验SSL握手时服务器发送的证书,只给了crt公钥。。。。真的服了。没办法,只能自己冲浪解决了,下面是针对我的这种情况,代码实践。测试没啥问题。以供搜到的你参考。

代码

//这个类实现证书校验
import javax.net.ssl.X509TrustManager;
import java.security.*;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;public class CustomTrustManager implements X509TrustManager {private static final Logger log = LoggerFactory.getLogger(CustomTrustManager.class);private final X509Certificate rootCert;public CustomTrustManager(X509Certificate rootCert) {this.rootCert = rootCert;}@Overridepublic void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {// 根据需求实现检查逻辑}@Overridepublic void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {boolean found = false;final PublicKey publicKey = rootCert.getPublicKey();for (X509Certificate cert : chain) {try {cert.verify(publicKey);found = true;break;} catch (NoSuchAlgorithmException | SignatureException | InvalidKeyException |NoSuchProviderException e) {log.error("Failed to verify client certificate", e);}}if (!found) {throw new CertificateException("No trusted certificate found in the server's certificate chain.");}}@Overridepublic X509Certificate[] getAcceptedIssuers() {return new X509Certificate[]{};}
}

测试代码

@Test
void testCerts() throws NoSuchAlgorithmException, KeyManagementException, IOException {//Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());X509Certificate certificate;//加载根证书try (InputStream inputStream = new FileInputStream("D:\\certs\\root-new.crt")) {CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");certificate = (X509Certificate) certificateFactory.generateCertificate(inputStream);} catch (IOException | java.security.cert.CertificateException e) {throw new RuntimeException(e);}X509Certificate rootCert = certificate;// 创建SSL上下文并设置为信任所有证书SSLContext sslContext = SSLContext.getInstance("TLS");sslContext.init(null, new TrustManager[]{new CustomTrustManager(rootCert)}, null);// 获取HttpsURLConnection实例HttpsURLConnection connection = (HttpsURLConnection) new URL("https://你的URI").openConnection();connection.setSSLSocketFactory(sslContext.getSocketFactory());connection.connect();System.out.println("2222222222");connection.disconnect();System.out.println("11111111111");
}

完!

http://www.hrbkazy.com/news/26399.html

相关文章:

  • 深圳阿里网站设计公司关键词优化课程
  • 子域名网站二级创建网站免费
  • 厦门seo网站关键词优推广今日国际新闻头条
  • 网站开发证seo关键词优化推广报价表
  • 邪恶做网站杭州做百度推广的公司
  • 高端手机网站设计怎么成为百度推广代理商
  • 杭州网站建设网站app拉新推广项目
  • wordpress 图书馆seo实战培训
  • 现在能不能去西安seo的特点是什么
  • 做网站纸箱关键词5118关键词挖掘工具
  • java做网站用哪些技术朋友圈广告推广
  • 昆明企业网站建设网店推广的作用
  • 网站怎么做六个页面百度推广一天烧多少钱
  • 武宁网站ui专业设计信息流广告推广
  • 二手房网站怎么做重庆搜索引擎seo
  • 网页游戏网站模板网络营销的现状分析
  • wordpress 安全设置长春seo排名公司
  • 昆明网站建设推广优化长春百度网站优化
  • 网站刷收益是怎么做的免费网站创建
  • 虚拟主机如何做多个网站湖南关键词优化首选
  • 网站建设修改指数
  • 跨境电商b2c是什么厦门百度seo点击软件
  • 做网站外包工作怎么样营销网站有哪些
  • ups国际快递网站建设模块分析站长之家seo查找
  • 网站收录没图片网站404页面怎么做
  • 佛山网站建设是哪个网站百度不收录的原因
  • 单页网站对攻击的好处志鸿优化设计电子版
  • 设计公司平面设计优化百度搜索
  • 做花酒的网站推广途径有哪些
  • 网站开发作业蜜雪冰城网络营销案例分析