

























服务运行在wsl,本来是在windows宿主机进行了转发将服务端口转发到127.0.0.1,这个地址会自动转发到wsl里面,所有用宿主机ip、wsl地址以为localhost访问都没有问题。
现在要配置https
(1)首先是在wsl中用mkcert创建了key.pem和cert.pem,然后服务启动时读取他,并使用https在监听。
mkcert -key-file key.pem -cert-file cert.pem domain.com 127.0.0.1 117.104.53.25
(2)这时候直接访问是访问不了,特别是chrome会直接不发送信息。
(3)需要在windows下安装证书,具体做法是把wsl中
mkcert -install
安装的rootCA.pem (mkcert -CAROOT会显示路径)拷贝到windows,然后导入到os证书列表。 Win+R → certmgr.msc → 受信任的根证书颁发机构 → 证书 → 右键导入 → 选择桌面上的 rootCA.pem
(4)经过上述一步后,使用wsl地址访问基本没有问题了,chrome可能要删除一下缓存。
地址栏访问:
chrome://net-internals/#hsts t
在 "Delete domain security policies" 里输入 172.21.147.111,点 Delete。
然后访问:
chrome://net-internals/#sockets
点 Flush socket pools。
(5) 但这是用宿主机ip或者localhost可能还是有问题,这应该是端口转发的问题,原来是转发到127本地地址,由这个地址自动转发到wsl里面,但是可能导致了问题。重新设置转发,转发到wsl的地址。就好了。
vite config里是allowedHosts: 'all',
------ powershell 端口映射
查看映射列表: netsh interface portproxy show all
添加映射: netsh interface portproxy add v4tov4 listenport=5173 listenaddress=0.0.0.0 connectport=5173 connectaddress=172.21.147.111
将宿主机 5173端口映射到wsl
也可以宿主机创建一个listen port,转发到宿主机本身127.0.0.1比如ss
删除映射 : netsh interface portproxy delete v4tov4 listenport=5173 listenaddress=0.0.0.0
注意:映射时最好两个端口设置不一样,不然后面会端口冲突。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。