当我在部署一个直播软件的时候,需要用到ssl证书,所以从腾讯云下载了相关的key和crt,但是在我部署之后仍然显示错误
const express = require("express"); const app = express(); let broadcaster; const port = 321; const http = require("https"); const fs= require('fs'); const path=require('path'); const privateKey=fs.readFileSync(path.join(__dirname,'key'),'utf8'); //crt文件 const certificate =fs.readFileSync(path.join(__dirname,'crt'),'utf8'); const credentials = { key: privateKey, cert: certificate, } const server = http.createServer(credentials, app); const io = require("socket.io")(server); app.use(express.static(__dirname + "/public")); io.sockets.on("error", e => console.log(e)); io.sockets.on("connection", socket => { socket.on("broadcaster", () => { broadcaster = socket.id; socket.broadcast.emit("broadcaster"); }); socket.on("watcher", () => { socket.to(broadcaster).emit("watcher", socket.id); }); socket.on("offer", (id, message) => { socket.to(id).emit("offer", socket.id, message); }); socket.on("answer", (id, message) => { socket.to(id).emit("answer", socket.id, message); }); socket.on("candidate", (id, message) => { socket.to(id).emit("candidate", socket.id, message); }); socket.on("disconnect", () => { socket.to(broadcaster).emit("disconnectPeer", socket.id); }); }); server.listen(port, () => console.log(`Server is running on port ${port}`));
尝试了谷歌和火狐之后发现都不可以,谷歌并没有高级可以看,火狐可以查看原因
原因就是:
证书已经关联了域名,只能对关联的域名使用,也就是说在你一开始创建这个证书的时候就要注意这个,只能部署在对应的域名下面的网站里面
下面是获取证书的教程