一、腾讯云证书申请过程
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后缀的文件,也可以正常访问。