热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

express配置https服务(以阿里云服务器为例),探索一周终于搞定

首先最重要的是你要明白https接口的接收或者发送的形式是https:域名:端口号而不是https:ip:端口号一,首先,去阿里云注册免费ssl证书1,在
首先最重要的是 你要明白 https接口的接收或者发送 的形式 是  https://域名:端口号  
而不是 https://ip:端口号
 
一,首先,去阿里云注册免费ssl证书
 
1,在搜索框中输入关键字证书,点击SSL证书
 

 

2,点击购买证书

 

 

3,选择免费型,点击购买

 

 

4,点击支付

 

 5,点击确认支付

 

 

 

6,支付成功后进入证书控制台

 

 7,点击申请

 

 

8,填写信息,点击下一步,最后点击验证,等待审核结束。

 

 

 

9,证书下来之后进入阿里云证书管理控制台下载证书  (nginx),如图

 

 

 

 

 10,下载解压后文件中包含 .key和 .pem 两个文件。 (a.key是为了方便自定义的名称)

 

 

 

11,将下载解压后包含.key和 .pem 两个文件的文件夹上传到自己的项目中。

 

 

 

12,将以下代码复制粘贴到www文件中,https端口根据需求自己修改 

 

 

 

 

#!/usr/bin/env node

 

/**
 * Module dependencies.
 */

 

var app = require(\'../app\');
var debug = require(\'debug\')(\'demo:server\');
var http = require(\'http\');
var fs = require(\'fs\')
var https = require(\'https\')
var path = require(\'path\')
var express = require(\'express\')

 

const options = {
  key: fs.readFileSync(path.join(__dirname, \'../cert/a.key\')),
  cert: fs.readFileSync(path.join(__dirname, \'../cert/a.pem\'))
}
app.set(\'porthttps\',11443)  

 

/**
 * Get port from environment and store in Express.
 */

 

var port = normalizePort(process.env.PORT || \'3000\');
app.set(\'port\', port);

 

/**
 * Create HTTP server.
 */

 

var server = http.createServer(app);

 

/**
 * Listen on provided port, on all network interfaces.
 */

 

server.listen(port);
server.on(\'error\', onError);
server.on(\'listening\', onListening);

 

https.createServer(options,app).listen(app.get(\'porthttps\'),function(){
  console.log(\'11443端口运行\');
})

 

/**
 * Normalize a port into a number, string, or false.
 */

 

function normalizePort(val) {
  var port = parseInt(val, 10);

 

  if (isNaN(port)) {
    // named pipe
    return val;
  }

 

  if (port >= 0) {
    // port number
    return port;
  }

 

  return false;
}

 

/**
 * Event listener for HTTP server "error" event.
 */

 

function onError(error) {
  if (error.syscall !== \'listen\') {
    throw error;
  }

 

  var bind = typeof port === \'string\'
    ? \'Pipe \' + port
    : \'Port \' + port;

 

  // handle specific listen errors with friendly messages
  switch (error.code) {
    case \'EACCES\':
      console.error(bind + \' requires elevated privileges\');
      process.exit(1);
      break;
    case \'EADDRINUSE\':
      console.error(bind + \' is already in use\');
      process.exit(1);
      break;
    default:
      throw error;
  }
}

 

/**
 * Event listener for HTTP server "listening" event.
 */

 

function onListening() {
  var addr = server.address();
  var bind = typeof addr === \'string\'
    ? \'pipe \' + addr
    : \'port \' + addr.port;
  debug(\'Listening on \' + bind);
}

 

由衷感谢帮助我解决此问题的夏初秋博主  https://www.cnblogs.com/xiaqiuchu/


推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
author-avatar
凡心悟事
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有