asp.net-mvc - IIS 提供 https GET,但 POST 失败
问题描述
我正在 Windows Server 2019 上设置 IIS 10。通过win acme安装 Let's Encrypt cert 后,某些 url 失败。
我已经ApploccationPoolIdentity
为我的网站设置了方法。这是我的设置
到目前为止,我的大部分路径都在工作。失败:
- 帐户/登录和帐户/注销
- 一些字体(.woff2、woff、.ttf)见下图
以上所有都失败了 403 状态代码。但是如果他们工作得很好
localhost
在我的 VPS 上打开- 取消绑定 hhtps (:443, ssl) 并使用 http 访问它们
UPD
我发现所有 POST 请求都失败(所有表单),而所有 GET 都成功了。不确定为什么字体会失败。
更新 2
POST 方法适用于邮递员和 IE,但在谷歌浏览器中失败。版本 89.0.4389.114(官方版本)(64 位)
更新 3
2021-04-05 05:44:18 10.129.0.3 POST /profile/edit - 443 user@e.mail xxx.xxx.xxx.xxx Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+ AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/89.0.4389.114+Safari/537.36 https://mymydomain.ru/profile/edit 403 0 0 93
更新 4
更新 5
我发现如果我请求子域,即 beta.mydomain.ru 而不是 mydomain.ru,包括 http:// 和 https://,一切正常。仅供参考,我已经颁发并测试了两个证书
- *.mydomain.ru, mydomain.ru
- mydomain.ru(不带通配符)
解决方案
我花了很多时间后放弃了解决这个问题。使用新证书设置新环境,一切正常。
第一次颁发证书时很可能会出错。
推荐阅读
- laravel - google-api 如何在带有令牌的离线请求中工作
- jms - rpc、rmi、jms和webservices有什么区别?
- c# - ASP.NET MVC:尝试将变量传递给另一个动作/方法
- swift - catch 表达式中 let 的用途是什么?
- php - 无法在 php 中获得 google-calendar-api 请求的结果(仅在终端中)
- reactjs - React:删除目标表行总是删除第一行
- javascript - 如何在 JavaScript 中将数组切换到对象中的数组?
- angular - Angular 模块 - 使用 3rd 方包/模块的共享模块
- opengl - GL_SYNC_FLUSH_COMMANDS_BIT 和 glFlush 不一样?
- javascript - 对数组应用条件