使用bindSecure 去創(chuàng)建一個(gè) HTTPS server.
服務(wù)將會(huì)提供一個(gè)證書(shū)給客戶(hù)端。這個(gè)證書(shū)鏈和私鑰在 SecurityContext 里面設(shè)置,這個(gè)對(duì)象通過(guò) bindSecure方法進(jìn)行調(diào)用.
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();
});
});
}
這里證書(shū)和key都是pem文件,他們可以通過(guò)OpenSSL工具進(jìn)行生成。
原文鏈接:https://api.dart.dev/be/180499/dart-io/HttpServer-class.html#id_bindSecure
閑話(huà):好久沒(méi)寫(xiě)新文章了,最近項(xiàng)目中用到需要在手機(jī)上搭一個(gè)小服務(wù)器的功能,且這個(gè)服務(wù)器要支持https,百度了好久也沒(méi)有找到能直接有幫助的文章,特此在這記錄一下,親測(cè)可用。普通的不支持https的代碼就很簡(jiǎn)單了,也在上面的那個(gè)鏈接里。