我正在创建一个 ASP.NET Web 应用程序,当前使用 Visual Studio 内置的 IIS Express 运行它。它通常在
localhost
启动并运行得很好。但是,我调用的外部 API 之一需要将我的应用程序重定向到 127.0.0.1
而不是 localhost
的回调(它使用 OAuth2 流进行身份验证)。我意识到 localhost 只是 127.0.0.1
的别名,但由于某种原因我无法让我的应用程序在 127.0.0.1
上运行。
我已进入“Web”选项卡下的项目设置,并将 Start Action > Start URL 和 Servers > Project URL 均更改为
http://127.0.0.1:25436
,甚至进入 IIS Express 的 applicationhost.config
并从此更改了绑定:
<bindings>
<binding protocol="http" bindingInformation="*:25436:localhost" />
<binding protocol="https" bindingInformation="*:44300:localhost" />
</bindings>
对此:
<bindings>
<binding protocol="http" bindingInformation="*:25436:127.0.0.1" />
<binding protocol="https" bindingInformation="*:44300:127.0.0.1" />
</bindings>
我什至尝试将IP放在端口之前,如我阅读的另一篇文章所建议的
127.0.0.1:25436:
来解决这个问题。
我不知道如何解决这个问题。请帮忙!
为了子孙后代 -
本地电脑上的 HTTPS 需要证书。 通常称为“自签名证书”的东西就足够了。 IIS Express 通常会在第一次安装时为您创建一个。
Windows 开始 > 输入“mmc”。 文件 > 添加管理单元 > 证书 > 添加 > 计算机帐户 > 下一步/完成/确定 输入“证书”部分 > 个人 > 证书 您应该会看到 IIS Express 证书。
如果没有,您需要重新安装 IIS Express,它会为您添加新的证书。
双击 IIS Express 证书并向下滚动到 Thumbprint 字段。 将整个指纹复制到编辑器中并删除所有空格。 (您可以简单地进行搜索并替换“”并替换为“”)(参见附图) 现在,使用管理员权限打开 CMD,运行以下命令:
netsh http add sslcert ipport=0.0.0.0:44300 certhash=0000000000003ed9cd0c315bbb6dc1c08da5e6 appid={00112233-4455-6677-8899-AABBCCDDEEFF}
现在,作为最后一步,您需要将此证书拖到“受信任的根证书...”部分。
完成。
解决这个问题的两种可能的选择
使用自签名证书
删除域安全策略:Chrome 的步骤 -
我今天遇到了这个版本,我发现证明富有成效的答案已经在https://aboutssl.org/fix-google-chrome-error-err_ssl_protocol_error/。
“如果不清除 SSL 状态,可能会阻止 SSL 连接并导致 SSL 连接错误。请按照以下步骤清除 SSL 状态。
转到开始菜单 > 控制面板 > 网络和 Internet > 网络和共享中心 现在单击左下角的“Internet 选项”。 将出现一个新的“Internet 属性”窗口。 现在移至“内容”选项卡并单击“清除 SSL 状态”。 “SSL 缓存已成功清除”警报应该出现在您的屏幕上。
再次重新启动 Chrome 并检查 ERR_SSL_PROTOCOL_ERROR 是否仍然存在。”
我发现解决这个问题更容易。适用于 Windows 11。 控制面板>>网络和Internet>>网络和共享管理中心>>左下角的“浏览器选项”>>高级选项卡>>勾选“SSL 3.0”证书复选框