制作SSL证书并上传至Nodejs服务器

0x00 导论

因为苹果大人要求2016年底把所有请求全部升级为https,故有这篇文章。

0x01 制作CSR证书

1.1 创建文件夹并切换至文件夹ssl_workspace

mkdir ssl_workspace && cd ssl_workspace

1.2 在服务器里,创建CSR证书使用命令:

openssl req -nodes -newkey rsa:2048 -keyout  server.key -out server.csr

把标红处替换成你的域名


ssl.png

0x02 域名申请网站购买SSL

把ssl_workspace文件夹下的server.csr里的全部内容,粘贴复制至域名申请网站的文本框里并提交,这里我使用的是name.com

-----BEGIN CERTIFICATE REQUEST-----
xxx密文xxxx
-----END CERTIFICATE REQUEST-----

0x03,在服务器创建ssl证书验证文件

3.1 你的nodejs项目根目录,使用命令创建index.js文件和存储ssl证书的文件夹,并切换至sslcert文件夹

touch index.js && mkdir sslcert

3.2 登录name.com的SSL证书管理

把Server Certificate里全部内容(从-----BEGIN CERTIFICATE-----至-----END CERTIFICATE-----结束)复制,在Linux服务器里使用vim server.crt创建文件,按i键进入编辑模式,
把内容全部复制进来,按ESC键退出编辑模式,敲击:x保存并退出。
3.3 同理按上述步骤,创建intermediate.crt文件。

3.4 ROOT文本框里的内容不需要做任何处理


3.5 把之前ssl_workspace文件夹下的server.key复制至sslcert文件夹,我这里使用的命令如下:

cp ~/ssl_workspace/server.key ~/server/express/sslcert

3.6 现在在sslcert 文件夹下有如下文件:intermediate.crt server.crt server.key

0x04,编写服务器端相关文件

4.1 首先确保nodejs的版本,使用node -v命令查询,这里我的版本是v4.2.3,你至少要达到或比4.2.3版本高,这里我吃过亏的,之前使用apt-get来安装node导致版本过低,ssl通道一直开启不通。
4.2 使用命令初始化项目,

npm init 

4.3 在你的项目引入依赖包,做使用npm install(i)引入依赖包。

npm i --save express path fs https http 

4.4 编写 vim router.js,把如下内容粘贴进来

module.exports = function (app) {
app.get('/', function (req, res) {
res.send('Hello world');
});

4.5 编写vim index.js文件,把如下内容粘贴进来

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

var privateKey  = fs.readFileSync('sslcert/server.key', 'utf8');
var certificate = fs.readFileSync('sslcert/server.crt', 'utf8');
var ca = [ fs.readFileSync('sslcert/intermediate.crt', 'utf8') ];
var credentials = {ca: ca, key: privateKey, cert: certificate};

var app = express();
var routes = require('./router')(app);
var httpServer = http.createServer(app);
var httpsServer = https.createServer(credentials, app);
httpServer.listen(80);
httpsServer.listen(443);

4.6 现在项目目录结构如下:index.js router.js package.json sslcert/ node_modules/
4.7 使用如下命令启动服务器

sudo nohup node index.js &

4.8 此外,你还可以使用命令ps -ef|grep node 查询node进程号和使用kill -9 进程号停止服务器

0x05

在你的浏览器敲击 , https://YourDomainName, 看到Hello World!说明配置成功!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容