安全,服务器证书和SSL连接

news2024/11/19 21:31:50

业务报错:

javax.net.ssl.SSLPeerUnverifiedException: Certificate for <10.5.20.137> doesn’t match any of the subject alternative names: [*.dt.zte.com.cn]
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.verifyHostname(SSLConnectionSocketFactory.java:507)

这个异常表明服务器提供的 SSL 证书中的主体备用名称(Subject Alternative Name,简称 SAN)与客户端尝试连接的服务器的主机名或 IP 地址不匹配

证书问题:服务器提供的 SSL 证书是为了 *.dt.zte.com.cn 这个域名或通配符域名颁发的。这意味着证书可以被用于任何以 dt.zte.com.cn 结尾的域名。

主机名不匹配:你尝试连接的服务器的 IP 地址是 <10.5.20.137>,这个 IP 地址并不匹配证书中的任何 SAN 条目。证书中的 SAN 条目是为域名设计的,而不是 IP 地址。

验证失败:由于主机名(在这个情况下是 IP 地址)与证书中的 SAN 条目不匹配,Java 的 SSL 握手过程中的主机名验证失败了,因此抛出了 SSLPeerUnverifiedException 异常。


服务器证书和SSL验证是网络安全通信的重要组成部分,它们确保了数据传输的安全性和可靠性。以下是一些关键概念和步骤,帮助你理解服务器证书和SSL验证:

1. SSL/TLS 协议

  • SSL(Secure Sockets Layer)TLS(Transport Layer Security) 是两个加密协议,用于在互联网通信中提供安全和数据完整性。
  • SSL 现在主要被 TLS 取代,但这两个术语经常互换使用。

2. 数字证书

  • 数字证书是一种电子文档,用于证明某个实体(如网站、服务器或用户)的身份,并包含公钥信息。
  • 证书由可信的第三方机构(称为证书颁发机构,CA)签发。

3. 主体备用名称(SAN)

  • SAN 是 X.509 证书的一个扩展,允许在单个证书中包含多个域名或IP地址。
  • 这使得单个证书可以用于多个不同的主机名,提高了灵活性。

4. SSL 验证过程

  • 客户端发起连接:当客户端(如浏览器)尝试与服务器建立安全连接时,服务器会提供其SSL证书
  • 证书验证客户端会检查证书的有效性,包括证书是否由受信任的CA签发、证书是否过期、证书的主体名称是否与请求的主机名匹配等。
  • 加密通信:如果证书验证通过,客户端和服务器将使用证书中的公钥进行密钥交换,然后使用对称加密算法进行安全通信。

5. 处理证书错误

  • 如果证书验证失败(例如,证书不是由受信任的CA签发、证书过期、主机名不匹配等),客户端会显示安全警告。
  • 在开发环境中,你可能会遇到自签名证书或未正确配置的证书,这会导致SSL验证错误。

6. 禁用 SSL 验证(不推荐)

  • 在某些情况下,你可能需要禁用SSL验证以进行调试。然而,这会使应用容易受到中间人攻击,因此不推荐在生产环境中这样做。

7. 解决方案

  • 确保证书正确配置:检查服务器证书是否包含正确的主机名和SAN
  • 更新证书:如果证书过期或需要更新,及时更新证书
  • 使用受信任的CA:确保证书由受信任的CA签发
  • 客户端配置:在客户端正确配置SSL/TLS设置,以确保安全通信。

8. Java中的SSL验证

  • 在Java应用中,你可以通过配置SSLContextTrustManager来自定义SSL验证行为。但请注意,禁用主机名验证会降低安全性。
// 示例:创建一个信任所有证书的 TrustManager(不推荐)
TrustManager[] trustAllCerts = new TrustManager[] {
    new X509TrustManager() {
        public X509Certificate[] getAcceptedIssuers() { return null; }
        public void checkClientTrusted(X509Certificate[] certs, String authType) { }
        public void checkServerTrusted(X509Certificate[] certs, String authType) { }
    }
};

// 初始化 SSLContext
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

总之,正确配置和管理服务器证书以及SSL验证对于确保网络安全至关重要。始终遵循安全最佳实践,确保数据传输的安全和完整性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2243631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ClickHouse的介绍、安装、数据类型

1、介绍和安装 1.1、简介 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用C语言编写&#xff0c;主要用于在线分析处理查询&#xff08;OLAP&#xff09;&#xff0c;能够使用SQL查询实时生成分析数据报告。 OLAP&…

基于AOA算术优化的KNN数据聚类算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于AOA算术优化的KNN数据聚类算法matlab仿真。通过AOA优化算法&#xff0c;搜索最优的几个特征数据&#xff0c;进行KNN聚类&#xff0c;同时对比不同个数特征下…

tcp 超时计时器

在 TCP&#xff08;传输控制协议&#xff09;中有以下四种重要的计时器&#xff1a; 重传计时器&#xff08;Retransmission Timer&#xff09; 作用&#xff1a;用于处理数据包丢失的情况。当发送方发送一个数据段后&#xff0c;就会启动重传计时器。如果在计时器超时之前没有…

《Probing the 3D Awareness of Visual Foundation Models》论文解析——多视图一致性

一、论文简介 论文讨论了大规模预训练产生的视觉基础模型在处理任意图像时的强大能力&#xff0c;这些模型不仅能够完成训练任务&#xff0c;其中间表示还对其他视觉任务&#xff08;如检测和分割&#xff09;有用。研究者们提出了一个问题&#xff1a;这些模型是否能够表示物体…

【论文阅读】WaDec: Decompiling WebAssembly Using Large Language Model

论文阅读笔记:WaDec: Decompiling WebAssembly Using Large Language Model 1. 来源出处 论文标题: WaDec: Decompiling WebAssembly Using Large Language Model作者: Xinyu She, Yanjie Zhao, Haoyu Wang会议: 39th IEEE/ACM International Conference on Automated Softwar…

【数字孪生】从Abaqus到Unity有限元应力云图

从abaqus到unity&#xff1a; 目录 1. 数据准备 1.1 abaqus中提取element rpt文件 element rpt文件格式&#xff1a; 1.2 abaqus中提取node rpt文件&#xff1a; node rpt文件格式&#xff1a; 2. python预处理以上数据&#xff1a; 2.1 提取node rpt中的节点坐标及应力…

一次需升级系统的wxpython安装(macOS M1)

WARNING: The scripts libdoc, rebot and robot are installed in /Users/用户名/Library/Python/3.8/bin which is not on PATH. 背景&#xff1a;想在macos安装Robot Framework &#xff0c;显示pip3不是最新&#xff0c;更新pip3后显示不在PATH上 参看博主文章末尾 MAC系统…

MySQL45讲 第二十五讲 高可用性深度剖析:从主备原理到策略选择

文章目录 MySQL45讲 第二十五讲 高可用性深度剖析&#xff1a;从主备原理到策略选择一、MySQL 主备基础原理&#xff08;一&#xff09;主备关系与数据同步&#xff08;二&#xff09;主备切换流程 二、主备延迟分析&#xff08;一&#xff09;主备延迟的定义与计算&#xff08…

跨越网络边界:IPv6与零信任架构的深度融合

2024年&#xff0c;工信部发布了《关于开展“网络去NAT”专项工作 进一步深化IPv6部署应用的通知》&#xff0c;加速了国内网络由IPv4向IPv6的转型步伐。未来&#xff0c;各行各业将逐步去NAT&#xff0c;逐步向IPv6迁移。在此过程中&#xff0c;网络安全解决方案和产品能力将面…

Linux—ln(link files)命令使用方法(How to create links on Linux)

Linux—ln&#xff08;link files&#xff09;命令使用方法 在 Linux 系统中工作时&#xff0c;需要在不同的目录中使用相同的文件时&#xff0c;不必在每个目录下都复制一份文件&#xff0c;这样不仅浪费磁盘空间&#xff0c;还会导致文件管理上的混乱。 ln(link files) 便是…

我要成为算法高手-位运算篇

目录 1. 判断字符是否唯一2. 消失的数字3. 两整数之和4. 只出现一次的数字II5. 消失的两个数字 前情提要&#xff1a;如果对一些常见的二进制位运算不熟悉&#xff0c;请看这篇文章&#xff1a; 常见的位运算 1. 判断字符是否唯一 面试题 01.01. 判定字符是否唯一 - 力扣&…

1Panel 推送 SSL 证书到阿里云、腾讯云

本文首发于 Anyeの小站&#xff0c;点击链接 访问原文体验更佳 前言 都用 CDN 了还在乎那点 1 年证书钱么&#xff1f; 开句玩笑话&#xff0c;按照 Apple 的说法&#xff0c;证书有效期不该超过 45 天。那么证书有效期的缩短意味着要更频繁地更新证书。对于我这样的“裸奔”…

23种设计模式-访问者(Visitor)设计模式

文章目录 一.什么是访问者模式&#xff1f;二.访问者模式的结构三.访问者模式的应用场景四.访问者模式的优缺点五.访问者模式的C实现六.访问者模式的JAVA实现七.代码解释八.总结 类图&#xff1a; 访问者设计模式类图 一.什么是访问者模式&#xff1f; 访问者模式&#xff08;…

JavaScript——DOM编程、JS的对象和JSON

一、DOM编程 DOM(Document Object Model)编程&#xff1a;就是使用document对象的API&#xff0c;完成对网页HTML文档进行动态修改&#xff0c;以实现网页数据&#xff0c;和样式动态变化效果的编程。 (一)DOM获取元素的多种方法 1.查找元素的函数 getElementById("id值…

Pr:音频过渡

Adobe Premiere Pro 自带一组共三个音频过渡 Audio Transitions效果。 对音频剪辑之间应用交叉淡化 Crossfade过渡&#xff0c;操作方式类似于应用视频过渡效果。 对于交叉淡化&#xff0c;要保证前剪辑的出点之后及后剪辑的入点之前有足够的预留内容&#xff08;也称“手柄”&…

大数据-226 离线数仓 - Flume 优化配置 自定义拦截器 拦截原理 拦截器实现 Java

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…

stm32启动过程解析startup启动文件

1.STM32的启动过程模式 1.1 根据boot引脚决定三种启动模式 复位后&#xff0c;在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。BOOT0 为专用引脚&#xff0c;而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样&#xff0c;相应 GPIO 引脚即进入空闲状态&#xff0c;可用于…

如何在项目中用elementui实现分页器功能

1.在结构部分复制官网代码&#xff1a; <template> 标签: 这是 Vue 模板的根标签&#xff0c;包含所有的 HTML 元素和 Vue 组件。 <div> 标签: 这是一个普通的 HTML 元素&#xff0c;包裹了 el-pagination 组件。它没有特别的意义&#xff0c;只是为了确保 el-pagi…

15-大模型 RAG 经验篇

一、LLMs 已经具备了较强能力了&#xff0c;存在哪些不足点? 在 LLM 已经具备了较强能力的基础上&#xff0c;仍然存在以下问题&#xff1a; 幻觉问题&#xff1a;LLM 文本生成的底层原理是基于概率的 token by token 的形式&#xff0c;因此会不可避免地产生"一本正经…

数据结构-二叉树及其遍历

🚀欢迎来到我的【数据结构】专栏🚀 🙋我是小蜗,一名在职牛马。🐒我的博客主页​​​​​​ ➡️ ➡️ 小蜗向前冲的主页🙏🙏欢迎大家的关注,你们的关注是我创作的最大动力🙏🙏🌍前言 本篇文章咱们聊聊数据结构中的树,准确的说因该是只说一说二叉树以及相…