更多内容请访问个人博客
这里提供我两种成功下的方法
以管理员的身份打开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`);
});
效果图
如果问题欢迎指出