微信小程序連接服務器需要配置https服務,一開始覺得應該挺難,在折騰的過程中也踩過一些坑,但是弄好了之後發現還挺簡單的,我用的阿里雲的服務器,所以用阿里雲平臺申請證書(小白,使用的免費證書,可能安全性不咋滴)操作步驟(後端使用nodejs)如下:
購買->申請證書->下載證書->生成私鑰->配置服務器
1/5_申請證書:
登錄阿里雲,進入雲盾證書服務購買證書(阿里雲的免費版的是個人的)
2/5_申請證書:
這一步忘記截圖了。
3/5_申請證書:
申請成功之後就可以下載了。
4/5_生成crt文件
下載Win64 OpenSSL v1.1.1d Light,然後將自己的key文件和pem文件放入該軟件安裝目錄的bin目錄(這是server.key
和server.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文件。
直接使用就可以了。