在nodejs中使用表达来搭建框架可以说是非常的简单方便,但是一般默认创建的都是http服务器,也就是只能通过http协议进行访问。如今https已经是发展趋势,我们应该顺应时代的潮流。在本篇文章中,我们将会来使用自签名的方式创建证书,然后使用表达框架来搭建https服务器,最后让浏览器或者客户端使用https协议进行访问。
首先我们要生成证书文件:
(1)生成私钥钥文件(下面的路径表示你要保存的文件路径位置)
,
openssl genrsa 1024比;/通道/private.pem
(2)通过上面生成的私钥文件生成CSR证书签名
openssl点播以及其他关键/通道/私人。pem治疗csr。pem
(3)通过上述私钥文件和CSR证书签名生成证书文件
代码如下:openssl x509点播天365——企业社会责任。pem -signkey/通道/私人。pem两级/通道/file.crt
此时生成的三个文件如下:
此时把这三个文件拷贝到你的nodejs项目目录下,比如我直接在项目根目录下新建证书文件夹,然后放入三个文件:
,完成以上步骤后,修改项目的启动文件,我这里的启动文件是app.js,或者有人是server.js,以下代码实现都一样:
var=需要表达(表达);//项目服务端使用表达框架 应用var=表达(); var=路径要求(“路径”); var fs=要求(fs);//使用nodejs自带的http、https模块 var http=要求(“http”); var https=要求(“https”);//根据项目的路径导入生成的证书文件 var privateKey=fs.readFileSync(路径。加入(__dirname。/证书/private.pem), use utf8); var=fs.readFileSync证书(路径。加入(__dirname。/证书/file.crt), use utf8); var凭证={关键:privateKey证书:证书}; var httpServer=http.createServer(应用); var httpsServer=https。createServer(凭证、应用);//可以分别设置http、https的访问端口号 var端口=8000; var SSLPORT=8001;//创建http服务器 httpServer。听(港口,函数(){ 控制台。HTTP服务器运行日志(' alt=" nodejs表达配置自签名https服务器的方法">https访问:
可以看到我们已经成功使用https来访问我们的服务器,但是Chrome浏览器却显示红色的不安全的,这是因为这个证书是我们自建的,没有经过第三方机构验证,所以会出现警告的提示。后续博客我们会介绍如何申请经过认证的证书。
在Chrome浏览器中打开开发者模式,在安全安全页中可以看到当前页面的证书信息,如下所示:
展开细节则可以看到我们创建证书的时候输入的各项证书信息。
同时我们也可以使用邮差来模拟客户端请求(实际开发中,服务端同学可以把证书发给客户端同学,经过简单配置就能实现https通信了):
http请求:
https请求:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
nodejs表达配置自签名https服务器的方法