webpack Safari无法通过https连接到localhost上的别名主机名

qhhrdooz  于 2024-01-08  发布在  Webpack
关注(0)|答案(1)|浏览(288)

自从最近的Safari更新以来,我再也不能通过本地域别名在localhost上通过https连接到我的本地React应用程序了。但是,我可以通过https://localhost:<someport>访问它们,但是域别名导致
无法连接到服务器
错误.它曾经在过去的工作毫无疑问. → Safari..

我的设置

  1. // hosts
  2. # The classic
  3. 127.0.0.1 localhost
  4. 255.255.255.255 broadcasthost
  5. ::1 localhost
  6. # Local dev aliases
  7. 127.0.0.1 some.local.com
  8. ::1 some.local.com

字符串
我还通过mkcert创建了证书

  1. $ mkcert -install
  2. $ mkcert "*.local.com" localhost 127.0.0.1 ::1


这似乎起作用了,因为我在Chrome或FF上再也没有收到任何X1 M3 N1 X安全警告。

  1. // webpack.config -> devServer
  2. ...
  3. server: {
  4. type: "https",
  5. options: {
  6. key: readFileSync(resolve(__dirname, "../certs/_wildcard.local.com+3-key.pem")),
  7. cert: readFileSync(resolve(__dirname, "../certs/_wildcard.local.com+3.pem")),
  8. ca: readFileSync("<output of mkcert -CAROOT>/rootCA.pem"),
  9. requestCert: true,
  10. },
  11. },
  12. ...

摘要

  • 我不认为这与证书有关,因为它在ChromeFF上运行得很好。
  • 在最近更新Safari之前,它确实工作了。
  • 在Safari中:我可以使用localhost而不是域别名通过https连接到我的应用程序,但不幸的是,这不是一个选项

任何想法?任何提示非常感谢!🙌

bz4sfanl

bz4sfanl1#

好吧,找到了一个答案,虽然不是很满意。
苹果已经发布了新的Safari版本(17.0),其中http/3会自动为“一些”用户激活。所以看起来我是被选中的用户之一,但也找不到任何选项来禁用http/3,以便运行一些适当的测试。
然而,似乎http/3忽略了对/etx/hosts中列出的域的查找,因此localhost的自定义域别名将不起作用。
所以我的解决方案是通过http://localhost运行我所有的应用程序。

相关问题