本地https快速解决方案——mkcert

参考:https://www.jianshu.com/p/7cb5c2cffaaa

一:安装Homebrew

(一)环境配置

sudo apt-get update
sudo apt-get upgrade -y
sudo sudo apt-get install -y build-essential make cmake scons curl git \
                               ruby autoconf automake autoconf-archive \
                               gettext libtool flex bison \
                               libbz2-dev libcurl4-openssl-dev \
                               libexpat-dev libncurses-dev

(二)git获取

为了保持整洁,克隆LinuxBrew成用户的主目录中的隐藏目录:

git clone https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew

(三)修改环境变量~/.bashrc

export PATH="$HOME/.linuxbrew/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/.linuxbrew/lib:$LD_LIBRARY_PATH"

export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"  #更新brew源

使得修改生效:

source ~/.bashrc

(四)更新brew

brew update

二:安装mkcert

(一)安装mkcert

brew install mkcert

(二)测试mkcert

三:安装证书

(一)生成根证书  

mkcert -install

(二)本地新建一个文件夹,并进入到该目录(用于存储证书)

mkdir ca
cd ca

也可不用放在项目中,通用的解决方案是放在磁盘中,比如用户目录(/User) 

(三)生成所需域名对应的本地证书,比如learn.webrtc.com

1.修改hosts文件 /etc/hosts

127.0.0.1   learn.webrtc.com

2.生成所需域名对应的本地证书

mkcert learn.webrtc.com

命令执行完之后,在该文件下会生成 learn.webrtc.com-key.pem (私钥)和 learn.webrtc.com.pem (证书)两个文件,也就是https配置需要的文件。

(四)开始使用nodejs实现本地https服务

'use strict'

var https = require("https");        //引入https库
var fs = require("fs");                //文件系统,用来读取证书

var options = {
    key : fs.readFileSync("./ca/learn.webrtc.com-key.pem"),            //同步读取文件key
    cert: fs.readFileSync("./ca/learn.webrtc.com.pem"),                //同步读取文件证书
};

var app = https.createServer(options,function(request,response){
    response.writeHead(200,{
        'Content-Type':"text/plain;charset=utf-8"
    });
    response.write("Hello World\n");                //页面输出
    response.end();                                    //页面结束
}).listen(8080,'0.0.0.0');

(五)服务启动验证

1.启动https服务

node 02_server_https.js

2.访问https服务

https://learn.webrtc.com:8080/

使用openssl和nodejs搭建本地https服务

 

posted @ 2021-05-18 21:15  山上有风景  阅读(1602)  评论(1编辑  收藏  举报