Ubuntu通过node.js搭建https服务demo(附Error: 0906D06C:PEM routines:PEM_read_bio:no start line解决过程及腾讯云证书申请过程)

一、腾讯云证书申请过程

1、申请免费证书必须先有域名,因此,先申请域名

2、域名申请完毕之后,会有默认的拥有者,必须先实名认证,才能解析成功

3、实名认证成功后,要执行解析操作

点击“解析”会出现下图所示界面 

 

解析过程需要10分钟~24小时,成功之后,“SSL”图标会由灰色变为绿色高亮 

3、解析成功之后,点击“SSL”进入证书申请界面,该过程也只是时间问题,成功之后界面如下,下载证书即可

证书的目录结构如下

 

 

二、ubuntu系统通过node.js搭建web服务

1、安装node.js

apt install nodejs

2、安装express ,serve-index

npm install express serve-index

3、上传证书到工作目录

需要安装lrzsz(腾讯云服务器自带),这里附上安装命令

sudo apt install lrzsz

输入“rz”,选择文件上传,这里用的是nginx下的证书文件

4、编写代码文件server.js

'use strict'

var http = require('http');
var https = require('https');
var fs = require('fs');

var express = require('express');
var serveIndex = require('serve-index');

var app = express();
app.use(serveIndex('./public'));
app.use(express.static('./public'));


//http server
var http_server = http.createServer(app);
http_server.listen(80,'0.0.0.0');

var options = {
        key:fs.readFileSync('./cert/2_chrisf.work.chrisf.work.key'),
        cert:fs.readFileSync('./cert/1_chrisf.work.chrisf.work_bundle.crt')
}

//https server
var https_server = https.createServer(options, app);
https_server.listen(443, '0.0.0.0');

5、新建“public”目录,并创建两个展示文件 

6、运行

node server.js

http及https都可以访问到 

 

.

 

 

三、Error: 0906D06C:PEM routines:PEM_read_bio:no start line 查找报错原因过程

上面的代码是修改之后的,最开始写完之后报错,以为是证书格式原因,于是把.crt格式的证书改为.pem格式,命令如下:

openssl x509 -in 1_chrisf.work.chrisf.work_bundle.crt -out chrisf.work.pem

 转换格式之后依然没解决,仔细查看自己代码,原来是读取证书是的key与value没有没有对应起来,错误代码如下:

将key和cert对换位置之后,可以正常启动服务并访问,有继续把.crt后缀的公钥文件替换为上面转换的.pem后缀的文件,也可以正常访问。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值