Express本地测试HTTPS的示例代码


Posted in Javascript onJune 06, 2018

我的环境

  1. 亚马逊(AWS)的一个ubuntu虚拟机.
  2. node
  3. openssl

生成证书

输入如下命令会在你的当前文件夹生成localhost.key和localhost.cert.

openssl genrsa -out localhost.key 2048
openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost

其中localhost为域名. 想要换成别的域名就直接把上面的所有localhost替换成你的域名.

以我为例, 我的虚拟机的域名是xxx.compute.amazonaws.com, 就以这个域名替换上面所有的localhost, 会生成, ec2-34-220-96-9.us-west-2.compute.amazonaws.com.key ec2-34-220-96-9.us-west-2.compute.amazonaws.com.cert两个文件.

更新

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

如果不想用密码保护私钥, 加上-nodes.

加上-subj '/CN=localhost'可以设置certificate的内容. 将其中的localhost替换成你的域名.

参考:How to create a self-signed certificate with openssl?

代码

想要运行如下代码, 需要先安装包

npm init
npm i -S https express

创建文件index.js, 内容如下.

#!/usr/bin/env node

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

var host = 'xxx.compute.amazonaws.com'; // Input you domain name here.
var options = {
  key: fs.readFileSync( './' + host + '.key' ),
  cert: fs.readFileSync( './' + host + '.cert' ),
  requestCert: false,
  rejectUnauthorized: false
};

var httpApp = express();
var app = express();
app.get('/', function (req, res) {
 res.send('hi HTTPS');
});
httpApp.get('/', function (req, res) {
 res.send('hi HTTP');
});
httpApp.listen(80, function () {
 console.log('http on 80');
});
var server = https.createServer( options, app );

server.listen( 443, function () {
  console.log( 'https on 443' );
} );

启动服务器

sudo node index.js

访问

浏览器中输入http://xxx.compute.amazonaws.com/就会以80端口访问HTTP服务器. 显示hi HTTP.

输入https://xxx.compute.amazonaws.com/就会以443端口访问HTTPS服务器, 显示hi HTTPS.

参考

Self-Signed, Trusted Certificates for Node.js & Express.js

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 面向对象全新理练之原型继承
Dec 03 Javascript
基于jquery实现图片广告轮换效果代码
Jul 07 Javascript
javascript面向对象编程代码
Dec 19 Javascript
JS简单的图片放大缩小的两种方法
Nov 11 Javascript
用js替换除数字与逗号以外的所有字符的代码
Jun 07 Javascript
javascript中声明函数的方法及调用函数的返回值
Jul 22 Javascript
基于Vue.js的表格分页组件
May 22 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
jQuery获取与设置iframe高度的方法
Aug 01 Javascript
Servlet实现文件上传,可多文件上传示例
Dec 05 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
Sep 02 Javascript
插件导致ECharts被全量引入的坑示例解析
Sep 23 Javascript
微信小程序仿美团城市选择
Jun 06 #Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
Jun 05 #jQuery
详解封装基础的angular4的request请求方法
Jun 05 #Javascript
React.js绑定this的5种方法(小结)
Jun 05 #Javascript
微信小程序实现城市列表选择
Jun 05 #Javascript
vue.js将时间戳转化为日期格式的实现代码
Jun 05 #Javascript
如何使node也支持从url加载一个module详解
Jun 05 #Javascript
You might like
php微信开发之关键词回复功能
2018/06/13 PHP
javascript instanceof 内部机制探析
2010/10/15 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
如何改进javascript代码的性能
2015/04/02 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
vue实现滚动鼠标滚轮切换页面
2020/12/13 Vue.js
分享15个最受欢迎的Python开源框架
2014/07/13 Python
python实现中文转换url编码的方法
2016/06/14 Python
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
python实现ID3决策树算法
2017/12/20 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
物理课外活动总结
2014/08/27 职场文书
高中学生自我评价范文
2014/09/23 职场文书
Go语言基础函数基本用法及示例详解
2021/11/17 Golang