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浏览器选项卡效果
Aug 25 Javascript
jquery.validate分组验证代码
Mar 17 Javascript
Jquery 在页面加载后执行的几种方式
Mar 14 Javascript
jquery $.trim()方法使用介绍
May 21 Javascript
js实现匹配时换色的输入提示特效代码
Aug 17 Javascript
JavaScript对象数组的排序处理方法
Oct 21 Javascript
简单实现Bootstrap标签页
Aug 09 Javascript
jQuery实现联动下拉列表查询框
Jan 04 Javascript
微信小程序movable view移动图片和双指缩放实例代码
Aug 08 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
Oct 23 Javascript
nodemon实现Typescript项目热更新的示例代码
Nov 19 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
Aug 28 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中的日期及时间
2006/11/23 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
PHP的反射机制实例详解
2017/03/29 PHP
PHP实现简单的计算器
2020/08/28 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
python中去空格函数的用法
2014/08/21 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
python实现rsa加密实例详解
2017/07/19 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
利用python实现AR教程
2019/11/20 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
Python-split()函数实例用法讲解
2020/12/18 Python
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
大二学生职业生涯规划书
2014/02/05 职场文书
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
阿里云日志过滤器配置日志服务
2022/04/09 Servers
Python内置的数据类型及使用方法
2022/04/13 Python
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python