IP的情况下,访问接口都正常,使用域名访问,报错400 badrequest

经确认,ssl配置无问题,证书文件本身无问题

最后查出来原因,是域名格式的问题,原域名中包含_,需要修改为-

排查过程:

1. 检查配置ssl:

server:
port: 9443
ssl:
key-store: classpath:xxx.xx.com.pfx
key-store-type: PKCS12
key-store-password: ******

2. 由于程序本身经过多层中转,所以在容器内部,

  

vi /etc/hosts

  新增本地的域名解析,如 xx.xx.xx.xx 域名.com

  容器内部验证(使用IP访问正常):  

curl -kv https://IP地址/test

  使用域名访问  

curl -kv https://域名.com/test

  请求异常400 bad request

  在后端程序中,新增logging.level.org.springframework.web的值为DEBUG
  只有正常200请求的日志,于是再修改日志等级为TRACE
  在修改为TRACE后,就发现程序在未被请求的情况下,一直报错,
  SSL握手一直报错,一直重连,一直报错
  精简一下:

  

org.apache.tomcat.util.net.NioEndpoint Error during SSL handshake
java.io.IOException: Connection reset by peer java.lang.NullPointerException: null
at org.apache.tomcat.util.net.SecureNioChannel.close

  

  经过这个日志,很明显有Secure,所以我又开始考虑是否证书有问题
  但是,证书已经确认过,文件本身是正常的,
  于是我再修改hosts文件,将本地ip,随便加了一个域名 aa.xx.com.cn,测试接口 

curl -kv https://aa.xx.com.cn/test

  发现正常,于是又改成原目标域名,发现还是400 bad request

  终于,想到了或许是域名格式的问题,可又想,这证书申请时,相关负责人也没有说格式异常,打回重新申请啊?
  于是在百度上搜了一下"域名能不能包含下划线",搜索出来的结果表明可以包含_
  所以又在bing搜了一下“Can the domain name include underscores”,结果表明不可以包含
  然后又找到了官方一点的说法,
  文档地址:https://www.ssl.com/faqs/underscores-not-allowed-in-domain-names/?nowprocket=1
  至此,终于找到了问题原因

IP服务正常,域名服务异常,报400 badrequest的更多相关文章

  1. springboot 1.3.5升级1.5.9后 默认使用tomcat 8.5版本 get请求报400 异常信息为 The valid characters are defined in RFC 7230 and RFC 3986

    1.springboot 1.3.5升级1.5.9后 默认使用tomcat 8.5版本而之前用的是tomcat7    get请求报400 异常信息为 The valid characters are ...

  2. nginx转发成功报400 bad request,服务端未收到请求

    nginx转发成功报400 bad request,服务端未收到请求 解决办法: upstream后面不要跟下划线 例如: upstream auth_service{ server 30.4.164 ...

  3. 解决SpringBoot连接Nacos集群报400问题

    问题描述 搭建一个Nacos集群,使用 SpringBoot 程序连接 Nacos 集群,在启动的时候报异常,程序启动失败,而后程序假死.详细控制台日志信息如下: failed to req API: ...

  4. 访问本机的WEB API 报400错误

    当时用的IP是127.0.0.1 报400错误,换成 localhost 后正常.

  5. cdnbest里站点域名不同步到节点,报400错误的一般原因

    报400错误一般是站点里的域名没有同步到节点上面的原因,产生的原因一般是下面两点原因: 1.检查节点列表如下图所示的状态是否打钩,这是节点和主控的通信状态,打叉表示连接有问题 这里打叉的几种原因(1) ...

  6. feign服务端出异常客户端处理的方法

    在使用feign进行远程方法调用时,如果远程服务端方法出现异常,客户端有时需要捕获,并且把异常信息返回给前端,而如果在开启熔断之后,这个异常会被消化,所以说,如果希望拿到服务端异常,feign.hys ...

  7. nginx+tomcat报400的坑

    nginx+tomcat的网页,在手机上通过浏览器可以正常访问,但是在自己的app的webview中访问就报400.查了访问日志,每次app中访问该页面,tomcat中就出现一个GET null的申请 ...

  8. tomcat拦截特殊字符报400,如 "|" "{" "}" ","等符号的解决方案

    最近在做一个项目,需要对外暴露两个接口接收别人给的参数,但是有一个问题就是对方的项目是一个老项目,在传参数的时候是将多个字符放在一个参数里面用"|"进行分割,然而他们传参数的时候又 ...

  9. Python基础中所出现的异常报错总结

    今天我们来探索python中大部分的异常报错 首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等. 打个比方很多公司年终送苹果笔记本,你 ...

  10. Yii2请求,报400错误

    出现400错误是yii2.0的csrf防范策略导致 在components里面添加request配置如下: 'request' => [ // !!! insert a secret key i ...

随机推荐

  1. 使用kafka作为生产者生产数据到hdfs

    关键:查看kafka官网的userGuide 配置文件: agent.sources = r1agent.sinks = k1agent.channels = c1 ## sources config ...

  2. python3 requests 请求https报错: urllib3.exceptions.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:992)

    正文 代码示例: #-*- coding:utf-8 -*- import requests url = "https://tst.com" res = requests.get( ...

  3. HGAME2023 week1-week2

    确实是高质量比赛,学到了很多知识.认识到了很多的不足. 任重而道远啊... hgame_week1 web Classic Childhood Game F12检查源码,打开Events.js 发现 ...

  4. 树莓派4B-控制霍尔编码器

    霍尔编码器-直流减速电机 介绍 直流减速电机,即齿轮减速电机,是在普通直流电机的基础上,加上配套齿轮减速箱.齿轮减速箱的作用是,提供较低的转速,较大的力矩.同时,齿轮箱不同的减速比可以提供不同的转速和 ...

  5. SpringBoot 对接美团闪购,检验签名,获取推送订单参数,text转json

    接口文档地址 订单推送(已确定订单):https://open-shangou.meituan.com/home/docDetail/177 签名算法:https://opendj.meituan.c ...

  6. yb课堂 核心数据库表字段设计和测试数据准备 《一》

    设计对应的表字段(统一使用Innodb引擎,mysql5.7) video_banner video chapter episode video_order user 数据库脚本 CREATE TAB ...

  7. Solo 开发者周刊 (第3期):如何打造令人惊艳的AI体验

    这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 Plu ...

  8. UE 实现鼠标点选模型

    楔子 在孪生的场景中,点击三维对象是常用的操作.比如点击模型显示相关属性和图片,点击摄像头模型播放视频,点击楼宇展开楼层等等. 因此点选模型是属于数字孪生最必要的基础能力. 准备知识 UE蓝图介绍 本 ...

  9. 常见的SQL数值型数据处理函数

    在数据驱动的时代,SQL 已成为数据分析和管理中不可或缺的工具.无论是处理简单的查询还是复杂的数据分析,SQL 都能帮助我们高效地完成任务. 然而,在处理数值型数据时,你是否感到过困惑,不知道如何运用 ...

  10. ElementUI Dialog 结合Vue实现对话框body“二分”布局

    Dialog 结合Vue实现对话框body"二分"布局 需求描述 如下图, 把对话框body内容部分,分成上下两部分,其中上部分高度根据窗口大小动态调整,如果内容过多,则出现滚动条 ...