问题:在无痕模式下能正常用 HTTPS 访问,群晖反向代理配置、证书分配、以及路由器的端口转发全部都是正确的! 现在普通模式下遇到的错误提示 “The plain HTTP request was sent to HTTPS port”(将普通 HTTP 请求发送到了 HTTPS 端口),原因非常明确:这是浏览器缓存或之前的错误记录在捣鬼。之前配置不正确(或者没配好证书)的时候,在普通模式下尝试用 http:// 或者 https:// 访问过这个域名和端口。浏览器(尤其是 Chrome)非常“聪明”,它把当时的错误状态或重定向规则死死记住了,导致现在就算你输入的是 https://,它内部处理时还是用普通的 HTTP 请求去敲你群晖反向代理的 HTTPS 端口,群晖的 Nginx 服务器一看:“我这里只接客 HTTPS,你给我发 HTTP 明文干嘛?”,于是就返回了这个标准的 Nginx 错误提示。要解决这个问题,你只需要清理掉浏览器里关于这个域名的“错误记忆”即可。
使用 F12 开发者工具清除(最推荐)
在提示“The plain HTTP request was sent to HTTPS port”的那个页面停留,按下键盘上的
F12键(或者在页面空白处点击鼠标右键,选择**“检查” / Inspect**)。浏览器右侧或下方会弹出一个复杂的面板。在面板最上方的菜单栏中,找到 “Application”(应用)标签页。 (注意:如果顶栏太窄看不到,可以点击顶栏最右侧的
>>符号,在下拉菜单里找到 Application)在左侧边栏中,点击最上方的 “Storage”(存储)。
这时右侧主界面会出现一个圆柱体图标,下面有一个明显的按钮叫 “Clear site data”(清除网站数据)。
确保该按钮下方的选项(如 Local and session storage, Cookies 等)都勾选上了,然后点击这个 “Clear site data” 按钮。
按键盘上的
F5刷新页面。
备用方案:快捷键清除近期缓存
如果你觉得上面的面板看起来太复杂,也可以用快捷键直接清理浏览器最近的整体缓存:
在浏览器里按下快捷键
Ctrl + Shift + Delete。在弹出的“清除浏览数据”窗口中,将“时间范围”选择为**“过去 24 小时”**(或者包含你刚开始折腾群晖到现在的时间段)。
只保留勾选“Cookie 及其他网站数据”和“缓存的图片和文件”(密码和历史记录不要勾,以免误删其他网站的登录状态)。
点击**“清除数据”**。
回到 Openlist 页面,重新输入
https://你的域名:端口号访问。