express + graphql+ https

配置GraphQL的https服务,需要如下流程:

  1. 生成SSL证书
  2. 配置GraphQL的https
    1. 生成ssl证书
  1. 解压openssl-0.9.8k_WIN32

(\\10.86.68.10\sharefolder\GraphQL工程\ openssl-0.9.8k_WIN32.zip)

    1. bin目录下启动CMD窗口
    2. 执行openssl.exe,进入OPENSSL运行界面

 

  1. 生成一个RSA私钥

命令行:genrsa -des3 -out server.key 2048

des3算法,2048位强度,server.key是秘钥文件名,

注意:此时需要提供一个至少4位的密码(如bitpower)

 

  1. 生成CSR(证书签名请求)——自签名(内部或测试需求)

命令行:req -new -key server.key -out server.csr

说明:需输入国家、地区、城市、组织、组织单位、Common Name和Email。

其中Common Name要支持https,Common Name应与域 名保持一致,否则会引起浏览器警告

样例:国家:CN、省州:GuangDong、城市:ShenZhen

组织名称:Bitpower、组织单位名称:IT

Common Name:localhost、

邮箱:2384434708 @qq.com

 

  1. 删除私钥中的密码

创建私钥指定密码后,每次Apache启动Web服务器时,都会要求输入密码。

要删除私钥中的密码,操作如下:rsa -in server.key -out server_no_passwd.key,此时需要输入创建私钥时输入的密码

 

  1. 生成自签名证书

说明:使用自签名临时证书时,浏览器会提示证书的颁发机构是未知的。

命令:x509 -req -days 365 -in server.csr -signkey server_no_passwd.key -out server.crt

server.crt就是SSL证书

    1. GraphQL配置Https
  1. 将上述操作生成的SSL证书文件拷贝到GrpahQL工程下,建立keys目录,文件放进去

server_no_passwd.key

server.crt

  1. 替换main.js文件即可

这个代码http和https都支持,只支持https的话,注释app.listen代码即可。

var express = require('express');
var graphqlHTTP = require('express-graphql');
var appdll = require('./app/dll')
var Schemetype = require('./app/Schemetype');
var QueryResolve = require('./app/QueryResolve');

//1. 导入https木模块
var https = require('https');
var fs = require('fs');

//2. 读入密钥和证书文件,构造https服务器选项
var options = {
    key:fs.readFileSync('./keys/server_no_passwd.key'),
    cert:fs.readFileSync('./keys/server.crt')
}

appdll.init()

var app = express();
//3.创建https服务器
var httpsServer = https.createServer(options,app);

//解决本机部署,客户端需要上网的问题
app.use(express.static('public'));

app.use('/graphql', graphqlHTTP({
    schema: Schemetype.schema,
    rootValue: QueryResolve.root,
    graphiql: true,
}));

//4.监听https端口
httpsServer.listen(8088);
console.log('Running Https a GraphQL API server at localhost:8088/graphql');

//监听http接口
app.listen(8089);
console.log('Running Http a GraphQL API server at localhost:8089/graphql');

    1. Postman测试接口

参考: https://www.cnblogs.com/xuange306/p/postman.html

参考 https://blog.51cto.com/11883699/2160032

佳斌申请点宽的CA证书,阿里云的1年免费。

Windows系统下创建自签名ssl证书

https://blog.csdn.net/huplion/article/details/52892869

 

node.js express 启用 https

https://www.cnblogs.com/whm-blog/p/9413958.html

 

HTTPS原理和CA证书申请

https://blog.51cto.com/11883699/2160032

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值