flutter中如何开启一个https的服务

2021-07-13 14:29:51 浏览数 (1)

使用bindSecure 去创建一个 HTTPS server.

服务将会提供一个证书给客户端。这个证书链和私钥在 SecurityContext 里面设置,这个对象通过 bindSecure方法进行调用.

代码语言:javascript复制
import 'dart:io';
import "dart:isolate";

main() {
  SecurityContext context = new SecurityContext();
  var chain =
      Platform.script.resolve('certificates/server_chain.pem')
      .toFilePath();
  var key =
      Platform.script.resolve('certificates/server_key.pem')
      .toFilePath();
  context.useCertificateChain(chain);
  context.usePrivateKey(key, password: 'dartdart');

  HttpServer
      .bindSecure(InternetAddress.anyIPv6,
                  443,
                  context)
      .then((server) {
        server.listen((HttpRequest request) {
          request.response.write('Hello, world!');
          request.response.close();
        });
      });
}

这里证书和key都是pem文件,他们可以通过OpenSSL工具进行生成。 原文链接:https://api.dart.dev/be/180499/dart-io/HttpServer-class.html#id_bindSecure

闲话:好久没写新文章了,最近项目中用到需要在手机上搭一个小服务器的功能,且这个服务器要支持https,百度了好久也没有找到能直接有帮助的文章,特此在这记录一下,亲测可用。普通的不支持https的代码就很简单了,也在上面的那个链接里。

0 人点赞