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. PHP 真的不行了?透过 PHP 的前世今生看真相

    大家好,我是码农先森. 1994年我出生在湖南的农村,就在同年加拿大的拉斯姆斯·勒多夫创造了 PHP,这时的 PHP 还只是用 Perl 编写的 CGI 脚本.或许是时间的巧合 PHP 变成了我后半生 ...

  2. springboot 访问url 报404

    使用Springboot 写了一个后端服务,通过 postman 测试接口时,发现一直 404 (message: No message available) 把springboot 从启动 到 da ...

  3. 使用Selenium爬取动态网页

    1.使用Selenium爬取动态网页 In [ ]: from selenium import webdriver driver = webdriver.Chrome() driver.get('ht ...

  4. Go微服务开发指南

    在这篇深入探讨Go语言在微服务架构中的应用的文章中,我们介绍了选择Go构建微服务的优势.详细分析了主要的Go微服务框架,并探讨了服务发现与注册和API网关的实现及应用. 关注TechLead,复旦博士 ...

  5. 第四章:springboot整合mybatis

    1,引入mybatis依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifact ...

  6. 【云服务器】记录使用腾讯云服务器搭建个人blog网站-【1】服务器配置

    服务器购买 第一次写博客,写的不好请见谅 腾讯云教育活动 配置还行,能搭建个网站了果断下单 选择系统 缺点(对我来说):参考于:人生不开窍:Windows Server各版本差异 不能安装window ...

  7. 对比python学julia(第二章)--(第三节)玫瑰曲线—数学之美

    3.1.问题描述 在数学世界中有一些美丽的曲线图形,有螺旋线.摆线.双纽线.蔓叶线且.心脏线.渐开线.玫瑰曲线.蝴蝶曲线-- 这些形状各异.简有繁别的数学曲线图形为看似枯燥的数学公式披上精彩纷呈的美丽 ...

  8. 第零讲:基础架构:一条SQL查询语句是如何执行的

    目录 第零讲:基础架构:一条SQL查询语句是如何执行的 正确的认识事物的方式方法(极为重要): sql语句内部的执行过程:(极为重要) MySQL 可以分为 Server 层和存储引擎层两部分. Se ...

  9. 【AI模型】PPT生成

    一.天工AI https://www.tiangong.cn/ 先对话进行提纲生成,然后可以编辑提纲,再进行PPT生成 生成完毕后,可以直接点击导出下载 二.星火讯飞 讯飞智文 生成的PPT相比天工的 ...

  10. 【MySQL】DB-Link 跨库访问

    相关说明: https://blog.csdn.net/qq_48721706/article/details/124088963 DB-LINK以一个远程访问方式访问其他MYSQL实例 连接实例和被 ...