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

高端网站建站公司上海中建建筑设计院有限公司

高端网站建站公司,上海中建建筑设计院有限公司,中铁建设集团网站,wordpress 付费后查看最近项目上开发了一个rest api,放在了一台linux服务器上,并且启用了https连接;在另一台服务器上写了一个功能需要去调用linux机器上的api。 项目里面自己封装了一个HttpsClient的类,用来发送https请求,并且在里面重写了…

最近项目上开发了一个rest api,放在了一台linux服务器上,并且启用了https连接;在另一台服务器上写了一个功能需要去调用linux机器上的api
项目里面自己封装了一个HttpsClient的类,用来发送https请求,并且在里面重写了TrustManager,方法体都为空,这样就不会对server的证书以及client的证书进行校验,能够顺利的从另一台服务器调用linux上的api

/*** * A default TrustManager which will trust any certificate.**/
private static class DefaultTrustManager implements X509TrustManager {@Overridepublic void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {}@Overridepublic void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {}@Overridepublic X509Certificate[] getAcceptedIssuers() {return null;}
}

但是上面的这种方法是不安全的,对server的证书以没有进行校验,就不能确定和自己进行通信的server,到底是不是真正的那个我想要通信的server,有可能是一个中间的,黑客部署的server,这样就会导致数据的安全问题。
于是需要在另一台这端对linux server端的证书进行认证,确认server是不是真正想要的server
解决方案:
linux服务器上,使用openssl生成了一个自签名的ssl证书(如何生成ssl证书),用这个证书来启用linux serverhttps证书,并且将这个证书放到另一台的某个目录,然后另一台系统上的java代码,在发送请求的时候,将证书放到keyStore里面,这样java就能对这个证书进行认证。
下面是ChatGPT给出的示例代码: 读取指定的每一个路径上的证书,放到JKS格式的keyStore里面,然后用这个keyStore初始化TrustManager,最后用TrustManager创建sslcontext

    private SSLContext getSSLContext(JSONArray certificates, String protocol) throws Exception {SSLContext sc = null;if (certificates != null) {String certFileName = null;try {// Create a temp keystore object to be used to make the HTTPS callKeyStore keystore = KeyStore.getInstance("JKS");keystore.load(null,null);for (int i=0; i < certificates.size(); i++) {certFileName = (String)certificates.get(i);try (BufferedInputStream bis = FileFactory.newBufferedInputStream((String)certificates.get(i))) {CertificateFactory cf = CertificateFactory.getInstance("X.509");Certificate cert = cf.generateCertificate(bis);keystore.setCertificateEntry("cert" + i, cert);}}TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());tmf.init(keystore);// Create and initialize the SSL context that will be used by the HTTPS connectionsc = SSLContext.getInstance(protocol);sc.init(null, tmf.getTrustManagers(), null);} catch(IOException e) {throw e;} catch(CertificateException e) {throw e;} catch(KeyStoreException | NoSuchAlgorithmException | KeyManagementException e) {throw e;}}return sc;}

更多关于https的文章,请参考我的https专栏:https://blog.csdn.net/u011069294/category_11083017.html?spm=1001.2014.3001.5482

http://www.yayakq.cn/news/909985/

相关文章:

  • 网站重要性做网站公司赚不赚钱
  • 深圳免费推广网站大全番禺制作网站设计
  • 陈光锋网站运营推广新动向怎么获取图片到wordpress
  • 机械网站怎么做服务器网站建设教程视频
  • 三只松鼠电商网站建设深圳网站建设_请到中投网络!
  • 网站建设是属于软件开发费吗建设银行网站银行登录
  • 外国网站设计素材想做电商需要投资多少钱
  • 我的家乡网站建设模板下载wordpress 首页文章摘要
  • 仓储网站模板让人做网站需要注意哪些问题
  • 给网站做外链要注意哪些交互做的比较好的网站
  • 长沙网站服务器阿里免费版企业邮箱
  • 做网站页面提供的图结构正能量网站地址污的
  • 县网站建设检查情况汇报discuz仿搜索网站
  • lamp网站建设包头做网站公司哪家好
  • 四川网站建设外包业务网站只做
  • PS的网站心理咨询网站建设论文
  • 自助建站基础工作主要包括()安顺做网站的公司
  • 网页设计模板html代码明星郑州做网站优化公
  • 销售推广做那个网站校园网站建设促进教学
  • 河南省城乡和住房建设厅网站首页设计平台app
  • 黑白风格网站重庆网站建设重庆最加科技
  • 商务网站建设工程师软文推广平台有哪些
  • 高端手机网站案例长春建站优化加徽信xiala5效果好
  • 校园网站系统建设需求网站建设服务费的会计处理
  • 济宁网站建设公司最新报价php投资理财企业网站模板
  • 怎么建设网站服务器手机端网站整站下载
  • 英文网站建设解决方案三水专业网站建设哪家好
  • 塘沽做网站公司科技与生活
  • 装饰网站建设效果图哪个网站的字体做的特别好
  • 织梦手机网站制作教程杭州软件app制作公司