配置局域网的https环境

717 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情

最近在学一webrtc,其中对于视频连接的时候需要在https下才能进行,否则就只能本地的localhost或者用192.0.0.1来进行访问,既然涉及到了视频通信,那当然还是两台机子来进行模拟更加的真实,所以就试着配置一下局域网的https。

准备环境

这里我们需要安装node,使用到node服务器,为了编写服务器的方便我们还要使用express这个框架,node环境的配置在这里就不说了,接下来就是要配置https需要的证书,下载链接如下

证书

image.png

如果我们的系统是64位的那么我们就安装黑色框这个,如果是32位的就安装红色框的这个。

点击进行安转,然后记住以下的这个目录

image.png

一路next就可以了。

打开我们刚才的安装目录

image.png

找到start这个批处理文件,以管理员身份打开

依次输入以下命令

cd C:\

私钥生成

openssl genrsa -out privkey.key 2048

证书生成

openssl req -new -x509 -key privkey.key -out cacert.pem -days 1095

image.png

接下来所有的操作你都可以选择默认的,如果你想设置域名为你的WiFi域名,那么你可以在common Name那里输入你的IP;

生成后我们就可以在我们的C盘看到我们生成的privkey.key和cacert.pem两个文件,接下来我们就可以用node来启动一个https的服务器了。

服务器代码

var express = require("express");
var app = express();

const fs = require("fs");

let sslOptions = {
  key: fs.readFileSync('C:/privkey.key'), //里面的文件替换成你生成的私钥
  cert: fs.readFileSync('C:/cacert.pem'), //里面的文件替换成你生成的证书
};
const https = require("https").createServer(sslOptions, app);

https.listen(443, () => {
  console.log("https listen on");
});

然后我们在终端运行这代码,之后我们去浏览器输入刚才我们在common name中输入的IP进行访问,可以看到我们的协议已经是https的了。

image.png

总结

https是http的安全版本,也叫超文本安全传输,https是有加密传输协议的通道,并且SSL提供了安全加密基础,https主要是用于http的传输,并且在HTTP与TCP之间有一个特殊的加密/身份验证,所以https的关键就是就是要这个证书和私钥,之后我们需要开启一个服务器来进行验证,这里我们就用到node服务器,为了编写的方便我们使用了express框架来快速的启动一个服务器,经过证书的安装和秘钥的生成后我们设置的ip的协议就是https的了。