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. 一款EF Core下高性能、轻量级针对分表分库读写分离的解决方案

    前言 今天大姚给大家分享一款EF Core下高性能.轻量级针对分表分库读写分离的解决方案,开源(Apache License)的EF Core拓展程序包:ShardingCore. ShardingC ...

  2. DarkHole_1靶机渗透流程

    VulnHub_DarkHole1靶机渗透流程 注意:部署时,靶机的网络连接模式必须和kali一致,让靶机跟kali处于同一网段,这用kali才能扫出靶机的主机 1. 信息收集 1.1 探测IP 使用 ...

  3. JSON 的了解?

    1., JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.(为了和其他语言进行交互)2. 数据格式简单, 易于读写, 占用带宽小{'age':'12', ' ...

  4. Happus:给准备离职成为独立开发者的你 5 点建议

    名字:Happus 开发者 / 团队:Regina Dan 平台:iOS, visionOS 请简要介绍下这款产品 Happus 是你追寻幸福健康关系.甚至提高婚姻生活品质的贴心助手.无论是关系维系. ...

  5. ABC357-C题解

    最近一直掉分,谔谔. 分析 发现机房里面除了我以外都用递归写的,那我就来讲一种非递归的吧. 考虑第 \(i\) 级地毯拆成九块以后其实就是八块第 \(i-1\) 级地毯与一块大小为 \(3^{i-1} ...

  6. 学习笔记--Java中static关键字

    Java中static关键字 static基础用法 什么时候成员变量声明为实例变量 所有对象的这个属性随对象而变化 什么时候成员变量声明为静态变量 所有对象都是这个属性 静态变量在类加载的时候初始化, ...

  7. 【译】用 GitHub Copilot 提交注释揭开历史的神秘面纱

    您是否曾经难以理解一个提交在做什么或者为什么要做?在审查或协作代码更改时,您是否希望有更多的清晰度和上下文?如果您的回答是肯定的,那么您会喜欢 GitHub Copilot 为您所做的--生成提交注释 ...

  8. 三星app移植修复(app反编译修改)

    工具: apktool ADT 命令: 反编译 java -jar apktool.jar d test.apk 重打包 java -jar apktool.jar b test 签名使用ADT sm ...

  9. 4、SpringBoot2之整合SpringMVC

    创建名为springboot_springmvc的新module,过程参考3.1节 4.1.重要的配置参数 在 spring boot 中,提供了许多和 web 相关的配置参数(详见官方文档),其中有 ...

  10. 【DataBase】MySQL 09 SQL函数 单行函数其三 日期函数

    日期函数 日期&时间函数 NOW 当前日期时间. CURDATE 当前日期. CURTIME 当前时间 -- NOW();返回系统日期+时间 SELECT NOW(); -- CURDATE( ...