我已经完成了多个过程来配置我的 flutter web,从
http://localhost
到 https://localhost
。
就像我已经按照以下过程创建了证书
openssl genrsa -out localhost.key 2048
创建私钥文件
生成证书签名请求(CSR):
openssl req -new -key localhost.key -out localhost.csr -subj "/CN=localhost"
使用 CSR 和密钥生成自签名证书:
openssl x509 -req -days 365 -in localhost.csr -signkey localhost.key -out localhost.crt
我添加了这些 .key 和 .csr 文件,创建了一个名为 cert 的文件夹,并添加了上面创建的证书。
然后我尝试使用
flutter run --web-launch-url=https://localhost:8444
没有运气得到错误,因为 https://localhost:8444
不是有效的 HTTP URL。
我已经创建了“serve.json”文件作为设置
{
"request_handlers": [
{
"url_pattern": "/",
"delegate": {
"require_trusted_origin": false,
"delegate_name": "flutter-tools/web-server",
"secure": true,
"web-port": 8444,
"key_path":"cert/localhost.key",
"certificate_path":"cert/localhost.crt"
}
}
]
}
并运行命令 - as flutter run -d web-server --web-port 8444,它仍然打开 http://locallost:8444
然后我尝试使用配置创建“webdev.yaml”文件
serve:
hostname: localhost
port: 8444
use_https: true
certificate_path: cert/localhost.crt
key_path: cert/localhost.key
https_port: 8444
并使用命令 flutter pub global activate webdev 激活 webdev 并运行命令以 https“webdevserve”打开 chrome 它仍然是“http”而不是“https”
直到一天结束都没有运气。我需要使用 https 作为安全服务打开我的本地主机。
您可以将这些参数传递到 flutter 命令行: flutter run -d chrome --web-tls-cert-path=
请参阅此 PR https://github.com/flutter/flutter/issues/60704。
查看可用选项:https://github.com/arpitgandhi9/flutter/blob/2063fde4ae1ce9ef725a6438de01a68bda8938b1/packages/flutter_tools/lib/src/runner/flutter_command.dart#L237