为小程序搭建https服务器(nodejs后端)

微信小程序连接服务器需要配置https服务,一开始觉得应该挺难,在折腾的过程中也踩过一些坑,但是弄好了之后发现还挺简单的,我用的阿里云的服务器,所以用阿里云平台申请证书(小白,使用的免费证书,可能安全性不咋滴)操作步骤(后端使用nodejs)如下:

购买->申请证书->下载证书->生成私钥->配置服务器

1/5_申请证书:

登录阿里云,进入云盾证书服务购买证书(阿里云的免费版的是个人的)
在这里插入图片描述

2/5_申请证书:

这一步忘记截图了。

3/5_申请证书:

申请成功之后就可以下载了。
在这里插入图片描述

4/5_生成crt文件

下载Win64 OpenSSL v1.1.1d Light,然后将自己的key文件和pem文件放入该软件安装目录的bin目录(这是server.keyserver.pem),打开控制台。
参考 凝雨 - Yun的博客中第二个方法。

5/5_配置服务器

之后将下载的证书解压(里面包含一个key文件和一个pem文件),放入项目中。
以下是我的代码 (nodejs–>express框架)。

const express = require("express")
const app = express();
const https = require("https");
const fs = require("fs");
const options = {
    key:fs.readFileSync("./server.key","utf8"),
    cert:fs.readFileSync("./server.crt","utf8")
}
app.get("/",(req,res)=>{
    res.send("hi,this is https!");
})
const server = https.createServer(options, app)
server.listen(443, ()=>{
    console.log("https is working!")
})

启动项目之后,在浏览器中输入https://127.0.0.1/,将会出现如下图所示页面
在这里插入图片描述
估计是因为免费证书的安全性不高所以提示的,这里点击高级,然后继续访问皆可以了。

到这里,应该就可以为小程序开启服务了(如果没有用问题就不要往下看了)

-------------------------------------------分界线-------------------------------------------------
我的微信小程序报错了,有如下提示 request:fail 此服务器的证书无效
我推测应该是因为证书是个人版本的,而我的小程序是企业的,于是想办法购买一个企业的SSL证书,恰好腾讯云上有免费的,于是上腾讯云上免费购买了一个。

需要的域名验证指引操作如下链接(腾讯云)
之后的操作和阿里云的差不多,只是下载压缩包的文件是一个key文件和一个crt文件。

直接使用就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章