Ssl 错误请求-无效主机名HTTP错误400。请求主机名无效

Ssl 错误请求-无效主机名HTTP错误400。请求主机名无效,ssl,curl,iis-10,Ssl,Curl,Iis 10,我得到这个错误: Bad Request - Invalid Hostname HTTP Error 400. The request hostname is invalid 在使用https的全新网站上 我的绑定如下所示: 我尝试了test.example.com和*作为我的主机名 我正在使用从GoDaddy获得的证书,并使用其中一个在线验证服务(安装后)进行验证 我已经追踪这个错误好几个小时了,快发疯了。其他人正在报告此错误,但他们正在http或IIS7上报告此错误。我在IIS10上,所

我得到这个错误:

Bad Request - Invalid Hostname HTTP Error 400. The request hostname is invalid
在使用https的全新网站上

我的绑定如下所示:

我尝试了
test.example.com
*
作为我的主机名

我正在使用从GoDaddy获得的证书,并使用其中一个在线验证服务(安装后)进行验证

我已经追踪这个错误好几个小时了,快发疯了。其他人正在报告此错误,但他们正在http或IIS7上报告此错误。我在IIS10上,所以IIS7解决方案不适用

我在亚马逊EC2上

我怀疑以下问题,但不知道如何解决:

不知何故,我不得不告诉与我的证书同名的机器(EC2AMAZ-XYZ)(test.example.com)

此命令将正常运行:

curl https://test.example.com:8028
但此命令将失败,并出现上述错误:

curl -d '{"UserName":"JOHN", "Password":"CHANGEME"}' -H "Content-Type: application/json" -X POST https://test.example.com:8028/api/Account/login
如果我使用
https://test.example.com:8028
在浏览器中,它可以正常工作,但我无法在浏览器中运行POST命令

我们添加了一个基于GET的登录版本,但失败了,出现了相同的错误。我们还启用了http,但它也失败了

以下是与此问题相关的代码:

using System.Web.Http;
using Newtonsoft.Json.Serialization;

namespace TappDmz
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();
            // Route to index.html
            config.Routes.MapHttpRoute(
                name: "Index",
                routeTemplate: "{id}.html",
                defaults: new { id = "index" });

            config.Routes.MapHttpRoute(
             name: "DefaultApi",
             routeTemplate: "api/{controller}/{id}",
             defaults: new { id = RouteParameter.Optional });
            //Now set the serializer setting for JsonFormatter to Indented to get Json Formatted data  
            config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
            //For converting data in Camel Case  
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        }
    }
}

命令行
curl
很难确定您要连接的主机。试试这个

curl -H 'Host: test.example.com' -d '{"UserName":"JOHN", "Password":"CHANGEME"}' -H "Content-Type: application/json" -X POST https://test.example.com:8028/api/Account/login

请参见

也发布或共享此内容,以便链接到如果使用IE/Chrome之类的web浏览器会出现什么错误?Lex Li:此“curl”命令表示它在web浏览器上运行良好。@Softhmak。我更感兴趣的是像Swagger@Michael Potter这样的东西,你能在curl命令中添加
-v
,并将输出粘贴到你的问题中吗?按照这些思路,tho:我是否需要告诉EC2机器的名称,以便某种反向查找可以工作?现在它有编码的AWS名称。我用带有我名字的DNS指向它,但亚马逊不知道这一点。