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

网站建设和空间网站建设网站营销网站托管一体化

网站建设和空间,网站建设网站营销网站托管一体化,东莞网站建设套餐,郑州专业网站推广优化公司tls 使用java生成在大多数企业环境中#xff0c;应用程序之间的连接中使用某种形式的安全通信#xff08;例如TLS或SSL#xff09;。 在某些环境中#xff0c; 相互#xff08;双向#xff09;身份验证也是一项非功能性要求。 有时将其称为双向SSL或双向TLS身份验证。 因… tls 使用java生成 在大多数企业环境中应用程序之间的连接中使用某种形式的安全通信例如TLS或SSL。 在某些环境中 相互双向身份验证也是一项非功能性要求。 有时将其称为双向SSL或双向TLS身份验证。 因此除了提供证书的服务器外它还请求客户端发送其证书以便随后可以使用它来验证调用方。 我当前客户的一个合作伙伴正在开发一种服务器该服务器可以通过MQTT接收数据并且由于数据非常敏感因此客户决定应使用相互TLS身份验证来保护数据。 此外客户要求将该服务器收集的聚合数据发布到其他下游服务时还必须使用双向TLS身份验证来完成。 该服务器需要向其调用方提供服务器证书以便他们可以验证主机名和身份但是当在SSL握手期间被请求这样做时它还必须向下游服务器提供具有有效用户ID的客户端证书。 最初的想法是使用用于配置密钥库的标准JVM系统属性来实现此目的“-Djavax.net.ssl.keyStore …”即将客户端和服务器证书都放入单个密钥库中。 但是我们很快意识到这是行不通的并且跟踪SSL调试日志表明无论是在传入SSL握手期间还是传出SSL握手期间服务器都提供了错误的证书。 在传入握手期间它应出示其服务器证书。 在外发握手期间应出示其客户证书。 注释了以下日志摘录并显示了这些问题 出示给呼叫者的证书错误 向下游提交了错误的证书 经过进一步调查很明显该问题与JVM中的默认密钥管理器实现有关。 的 SunX509KeyManagerImpl类用于选择JVM在握手期间应提供的证书并且对于客户机证书和服务器证书选择代码仅采用它找到的第一个证书 String[] aliases getXYZAliases(keyTypes[i], issuers);if ((aliases ! null) (aliases.length 0)) {return aliases[0]; NEEDS TO BE MORE SELECTIVE} 第一行中的方法返回的别名仅匹配密钥类型例如DSA和可选的颁发者。 因此在密钥库包含两个或多个证书的情况下选择性不够。 此外列表的顺序基于对HashMap条目集的迭代因此顺序不是说字母顺序的而是确定性的和恒定的。 因此在搜索服务器证书时该算法可能会返回客户端证书。 但是如果该部分起作用则当服务器进行下游连接并需要出示其客户端证书时该算法将失败因为将再次出示第一个证书即服务器证书。 因此由于不可能创建并发的传入和传出双向SSL连接因此我向Oracle提交了一个错误内部审查ID 9052786在20180225上报告给Oracle。 一种解决方案是使用两个密钥库每个证书存储一个 如此处所示 。 JVM的一个可能补丁是通过使用 “扩展密钥用法”证书扩展。 基本上可以增强上述代码以额外检查扩展的密钥用法并在选择别名时做出更明智的决定例如 String[] aliases getXYZAliases(keyTypes[i], issuers); if ((aliases ! null) (aliases.length 0)) {String alias selectAliasBasedOnExtendedKeyUsage(aliases, 1.3.6.1.5.5.7.3.2); //TODO replace with constantif (alias ! null) return alias;//default as implemented in openjdkreturn aliases[0]; } 选择别名的方法如下 private String selectAliasBasedOnExtendedKeyUsage(String[] aliases, String targetExtendedKeyUsage) {for(String alias : aliases){//assume cert in index 0 is the lowest one in the chain, and check its EKUX509Certificate certificate this.credentialsMap.get(alias).certificates[0];List ekus certificate.getExtendedKeyUsage();for (String eku : ekus) {if(eku.equals(targetExtendedKeyUsage)){return alias;}}}return null; } 更多详细信息包括完整运行的示例和单元测试 请参见此处 。 翻译自: https://www.javacodegeeks.com/2018/03/java-problem-with-mutual-tls-authentication-when-using-incoming-and-outgoing-connections-simultaneously.htmltls 使用java生成
http://www.sadfv.cn/news/130818/

相关文章:

  • 网站设计的思路门户网站舆情怎么做
  • 杭州pc网站开发公司有哪些漳州市网站建设费用
  • 重庆网站建设 微客巴巴建站技术博客
  • 成都网站制作培训东莞市手机网站建设品牌
  • 商洛市商南县城乡建设局网站wordpress婚庆主题
  • 下载了源码怎么做网站织梦网络设计工作室网站模板
  • 七米网站建设做外贸需要做个英文网站吗
  • 做电影网站一年赚多少钱义乌建网站
  • 烟台seo网站排名优化网站刚刚开始怎么做
  • 企业网站设计的主要目的seo网站推广杭州
  • 深圳企业网站哪家好icp备案需要先建设网站么
  • 深圳做网站推广的公司wordpress应用apok主题
  • 做网站如何组建域名门户网站通俗理解
  • 网站改版说明wordpress 自定义页眉
  • 如何建立手机网站wordpress的文章tag标签
  • 怎么做返利网站吗洞口网站建设
  • 还是新能源专业好关键词优化快排
  • 河间市网站建设wordpress代码高亮是什么意思
  • 什么是网站的二级目录下线上推销的方法
  • 一元建站网站跳转站代码
  • 安徽淮北做网站的公司有哪些wordpress阿里云建站
  • 自己做网站卖货多少钱Wordpress 无效插件
  • 鞍山市城市建设管理局网站手机快速建站
  • 做淘宝主要看哪些网站有哪些内容网站开发什么语言比较好
  • 搜索引擎及门户网站介绍总结博客和网站有什么不同
  • 宝安网站制作公司html网站的直播怎么做
  • 上市公司年报查询网站wordpress 学习
  • wordpress设置网站主题中小企业建网站
  • 合肥建设干部学校网站首页加我vx看
  • 网站建设seo规范微信平台