怎么配置连接使用了SSL但是自签证书的服务器_忽略证书校验策略

阿瑶酱_8621

阿瑶酱_8621

2026-05-28

700人浏览

原创

忽略SSL自签名证书验证需谨慎:requests设verify=False并禁用警告;curl用-k;Java需重写SSLContext和TrustManager;Node.js用https.Agent的rejectUnauthorized: false;均不解决国密算法或mTLS等特殊场景,且跳过验证会丧失安全防护。

requests 忽略 SSL 自签名证书验证

直接设 verify=false 就能跳过证书校验,但会触发 insecurerequestwarning 警告,且不推荐用于生产环境。

  • 必须显式关闭警告,否则控制台刷屏:
    import requests
    from requests.packages.urllib3.exceptions import InsecureRequestWarning
    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
  • verify=False 只影响 TLS 握手阶段的证书链验证,不绕过域名匹配(即仍要求证书里的 CN 或 SAN 匹配请求 host);若连域名也不匹配,需配合 certifi 替换或改用 urllib3 底层配置
  • 某些旧版 Python(如 2.7.9 以下)或系统 OpenSSL 版本太低时,verify=False 可能无效,得降级到 urllib3==1.25.11 并手动 patch 连接池

curl 命令行跳过自签证书检查

加 -k(等价于 --insecure)最简单,但要注意它同时忽略证书有效性、域名不匹配和过期问题。

  • 不要和 --cacert 混用:两者冲突,-k 优先级更高,后者会被无视
  • 如果服务端用了客户端证书双向认证(mTLS),-k 不影响客户端证书发送,仍需配 --cert 和 --key
  • 脚本中用 -k 时建议加注释说明风险,避免被误当“通用调试开关”长期保留

Java HttpClient 忽略自签证书(OpenJDK 11+)

不能只靠 setHostnameVerifier,必须重写 SSLContext 并注入信任所有证书的 TrustManager。

SSL
SSL

配置HTTPS,管理TLS证书,并调试安全连接问题。

下载
  • 关键点是调用 SSLContext.getInstance("TLS") 后,用自定义 X509TrustManager 初始化,再传给 HttpsURLConnection.setDefaultSSLSocketFactory()
  • 别漏掉 setHostnameVerifier((hostname, session) -> true),否则即使证书可信,域名不匹配仍会报 java.security.cert.CertificateException: No subject alternative names present
  • 这种写法在 JDK 17+ 的默认安全策略下可能被拒绝,需启动时加 --illegal-access=permit 或改用 HttpClient.newBuilder().sslContext(...) 新 API

Node.js axios 忽略证书校验

通过 httpsAgent 配置 rejectUnauthorized: false 实现,但注意这个选项只对 HTTPS 请求生效,HTTP 请求不受影响。

  • 必须用 https.Agent,不是 http.Agent;写错会导致请求卡住或报 Error: socket hang up
  • 若服务器证书使用了国密 SM2/SM4 算法,Node.js 原生不支持,rejectUnauthorized: false 也救不了——得换支持国密的运行时(如 Node.js + gm-crypto 插件)
  • 在 Electron 环境中,还需额外调用 session.defaultSession.setCertificateVerifyProc(),否则主进程发起的请求仍会校验

真正麻烦的从来不是关掉校验,而是关掉之后怎么确保通信没被中间人篡改。自签名证书本身不提供信任链,跳过验证等于把加密层当摆设用,该加 pinning 的地方不能省。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

ssl

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

860

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2552

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

856

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

769

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2296

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4232

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

687

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 0.1万人学习