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

东圃手机网站建设ip代理免费

东圃手机网站建设,ip代理免费,招聘网站建设的意义,岳阳网红背景 远程调用第三方服务时,之前都是双向认证,服务器提供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.yayakq.cn/news/853220/

相关文章:

  • 大兴网站建设设计公司宣城公司做网站
  • 泰州cms建站模板济南企业网站建设
  • 影视会员网站怎么建设网站设计所需软件
  • 重庆南川网站制作公司电话制作网站需要怎么做的
  • 如何做好电商网站平面设计长沙0731房地产网
  • 济南市城市建设规划局官方网站网站制作 万网
  • 网站建设vs网络推广杭江建设有限公司
  • 哪个网站可以做图片网站建设的一般流程
  • 苏州高端网站设计机构北京住房建设官方网站
  • 做网站游戏怎么挣钱wordpress新用户默认角色设置
  • 做网站买什么服务器 便宜哪里有网站建设官网
  • 网站建设联系方式品牌网站制作简创网络
  • 给网站平台做推广叫什么建立组词
  • 太原建设北路小学网站用c 做网站
  • 莆田网站建站做一个一般的网站需要多少钱
  • 网站广告图怎么做故宫网站建设
  • 湖州公司做网站织梦 调用网站地址
  • 关于域名和主机论坛的网站广州网络营销外包怎样
  • 北京营销型网站建设培训班建立网站加强家园沟通和联系的做法有何利弊
  • 网站建设淘宝永安市住房与城乡建设局网站
  • 南昌网站排名福建省建设工程注册管理中心网站
  • 电子科技网站宁波高端网站制作公司
  • 网站没询盘怎么做推广丹徒网站建设方案
  • 项目案例 化妆品网站南昌县建设局网站
  • 门户网站集群建设方案新开的网页游戏大全
  • 建筑网站资料怎么样免费做自己的网站
  • 友点企业网站管理系统模板下载芜湖建设网站公司
  • 建站公司接单建湖人才网
  • 网站建设工作室需要哪些设备网站开发前端与后端源代码
  • 黑龙江网上建设局报建网站张家界专业seo优化