如何用express创建一个https接口?

const app = express();
let keywords
app.get('/api/getNews', (req, res) => {
    keywords = req.query.keywords
    console.log(keywords)
    getNewsFromSql(function () {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
        res.send(resp)//数据库查完之后再发送
    });
});
const server = app.listen(3000, function () {
    const host = server.address().address;
    const port = server.address().port;
    console.log('Example server listening at http://%s:%s', host, port)
})

目前是可以在3000端口监听http的get请求,并且查库;
现况是前端可能运行在https服务器,浏览器ajax拒绝请求http的接口;
目的是监听https的请求。
现服务器已经有赛门铁克的免费证书,网上的教程基本都是通过openssl创建自签名证书,
如何在express用已有证书创建https接口?

阅读 4k
1 个回答

配置基本是一样的, 只需你把对应的自签名证书换成你的免费证书即可.

var fs = require('fs');
var http = require('http');
var https = require('https');
var privateKey  = fs.readFileSync('sslcert/server.key', 'utf8'); //这里输入你的证书所在位置
var certificate = fs.readFileSync('sslcert/server.crt', 'utf8'); //这里输入你的证书所在位置

var credentials = {key: privateKey, cert: certificate};
var express = require('express');
var app = express();

// express 相应配置

var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);

httpServer.listen(8080);
httpsServer.listen(8443);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题