更多内容请访问个人博客
这里提供我两种成功下的方法



以管理员的身份打开PowerShell的控制台

设置PowerShell的ExecutionPolicy为Bypass或者AllSigned
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol =[System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco -?
两种方法大致一样选哪个都行,如果自己有特殊需求可以直接查看官网
根据mkcert的GitHub提示使用choco下载
记得使用管理员身份打开cmd
choco install mkcert

验证mkcert

创建本地CA
mkcert -install

注: 使用mkcert -CAROOT 命令查看CA生成的路径
创建localhost证书
mkcert localhost 127.0.0.1 ::1

导入CA
把pem文件类型改为(改之前可以先备份)crt结尾文件(因为win上不识别pem)

点击证书进行安装

创建http2项目
知道mkcert生成的证书(在生成并安装证书的第二步中已经知道,在管理员目录下),并移动到http2项目下的key目录

启动http2服务
const path = require('path');
const fs = require('fs');
const http2 = require('http2');
const server = http2.createSecureServer({
key: fs.readFileSync('./key/localhost+2-key.pem'),
cert: fs.readFileSync('./key/localhost+2.pem'),
});
server.on('error', (err) => console.error(err));
server.on('stream', (stream, headers) => {
stream.respond({
'content-type': 'text/html; charset=utf-8',
':status': 200
});
stream.end('kinghiee http2 demo
');
});
server.listen(9000, function(){
console.log(`listening at https://localhost:9000`);
});
效果图

如果问题欢迎指出