尝试从客户端应用程序下载服务器上的文件时,出现不一致的错误。错误是请求URL与证书CN不匹配。在错误中,请求URL是服务器IP,但证书上的CN是域名,并且证书中没有IP的SAN条目,因此我想这是错误的原因。该证书有2个SAN条目,例如mydomain.com和www.mydomain.com。
我的客户端应用程序使用域名进行请求,因此这是我的问题:
域名在哪里更改为IP?
我检查了IIS服务器,并且webapp中没有重写规则(均未重定向);我的IP地址确实有绑定,这可能是问题吗?
最佳答案
我不知道正确证书的具体内容,服务器的设置,多个未指定系统和应用程序的行为以及您认为正确的URL的含义。但是我可以想象以下问题:
根据应用程序的不同,它可能会或可能不会使用Server Name Indication (SNI);根据服务器的设置,这可能会导致提供不同的证书。
根据应用程序的不同,它可能会查看CN进行验证,也可能不会。该标准说,只有在没有SAN(主题备用名称)DNS记录的情况下,才应咨询CN,但是即使有SAN DNS记录,各种应用程序也要向CN咨询,而即使没有SAN DNS记录,其他应用程序也不要向CN咨询。但只有SAN IP记录。并且有些人坚持即使根本没有SAN记录也不要查看CN。
如果URL不是每个域而是IP地址,则某些应用程序会正确地检查SAN IP记录,某些应用程序会检查CN,而某些应用程序会忽略任何SAN IP记录,但是错误地期望IP地址包含在SAN DNS记录中。
除此之外,不同的应用程序实际上可能使用略有不同的URL,即某些example.com
,某些www.example.com
,某些以HTTP开头和某些以HTTPS开头。这可能会导致不同的证书或重定向,具体取决于服务器设置。
因此,为减少问题,请确保无论使用或不使用SNI,无论使用哪个可能的URL,都只提供一个证书即可。还要确保该证书实际上包含您期望作为SAN DNS记录的每个域名。并且,如果您希望通过IP地址访问该站点,而不是通过URL中的域访问该站点,请确保同时具有SAN IP和SAN DNS记录。另外,您进行的任何重定向都应指向完全相同的域名或IP地址。
完成此操作后,问题仍然存在,请尝试在Stackoverflow上发布新帖子,在其中添加有关站点设置,证书内容以及确切的客户端确切问题的足够详细信息,以便其他人可以重现这些问题,并且他们可以为您提供帮助调试剩余的问题。