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. 五个节点的hadoop集群--主要配置文件

    五个节点:配置文件解析:hadoop01               NameNode .DataNode.NodeManagerhadoop02 ResourceManager hadoop03 D ...

  2. Unity中指定相机截屏,并将图片转为Base64

    问题背景: 需求就是只截场景,不包含UI,并将截图保存为Base64格式给到Web展示. 方案: 指定相机截图: 1 /// <summary> 2 /// 指定相机截屏 3 /// &l ...

  3. 洛谷P1077

    这道题和上一道题也是比较像的,基本采用的也是线性dp的思路 状态数组稍微有点不同,这里表示的是当前种数的花时一共的花的数量 #include<iostream> #include<u ...

  4. 全网最适合入门的面向对象编程教程:12 类和对象的Python实现-Python使用logging模块输出程序运行日志

    全网最适合入门的面向对象编程教程:12 类和对象的 Python 实现-Python 使用 logging 模块输出程序运行日志 摘要: 本文主要介绍了日志的定义和作用,以及 Python 内置日志处 ...

  5. 存储系列DAS,SAN,NAS常见网络架构

    随着主机.磁盘.网络等技术的发展,对于承载大量数据存储的服务器来说,服务器内置存储空间,或者说内置磁盘往往不足以满足存储需要.因此,在内置存储之外,服务器需要采用外置存储的方式扩展存储空间,今天在这里 ...

  6. Python 按比例获取样本数据或执行任务

    按比例获取样本数据或执行任务 By:授客 QQ:1033553122 开发环境 win 10 python 3.6.5 需求 已知每种分类的样本占比数,及样本总数,需要按比例获取这些分类的样本.比如, ...

  7. LeetCode513. 找树左下角的值

    题目链接:https://leetcode.cn/problems/find-bottom-left-tree-value/description/ 题目叙述: 给定一个二叉树的 根节点 root,请 ...

  8. 关于netty 一些使用细节

    netty 的客户端通常是websoket   但是为了演示也可以用netty做客户端, Channel:可以被理解为数据传输的通道. Pipeline:可以被视为一个由多个工序组成的流水线,负责将数 ...

  9. 【TypeScript】Re01

    参考视频: https://www.bilibili.com/video/BV14Z4y1u7pi JS已有类型: 基础类型 number / string / boolean / null / un ...

  10. 【PostgreSQL】下载安装PgSQL

    官网下载地址: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads Windows平台 官网直接提供exe安装包, ...