koa2服务配置SSL的实现方法

一:前言

1:SSL证书

我的域名在腾讯云,每次解析新建一个三级域名(假设是  aaa.jiangw1.com ),都会赠送一年的SSL,申请成功后下载SSL证书,如下:

可以看到准备了各种服务器的文件,node服务用红圈中的通用ssl文件即可。

2:解析

aaa.jiangw1.com记录类型填 A ,记录值填服务器公网IP

二:代码

以下代码限定 koa2项目,其余node项目也都类似。

1:安装依赖

npm install koa-sslify
npm install koa2-cors

2:app.js新增

const app = new Koa();
const cors = require('koa2-cors');
const sslify = require('koa-sslify').default;

// 使用 ssl
app.use(sslify());

// 跨域设置
app.use(cors({
  origin: function (ctx) {
    return ctx.header.origin;
  }
}))

3:bin文件夹修改

新建ssl文件夹,放入SSL证书中的  .key和 .pem文件。

修改 bin/www,如下:

var https = require("https");
var fs = require("fs");
var path = require("path");
/**
 * Create HTTP server.
 */
// SSL options
var options = {
  key: fs.readFileSync(path.join(__dirname, './ssl/aaa.jiangw1.com.key')),
  cert: fs.readFileSync(path.join(__dirname, './ssl/aaa.jiangw1.com.pem'))
};
// var server = http.createServer(app.callback());
var httpsServer  = https.createServer(options, app.callback());
httpsServer.listen(port, (err) => {
  if (err) {
    console.log('server init error', err);
  } else {
    console.log('server running at port :' + port);
  }
});
httpsServer.on('error', onError);
httpsServer.on('listening', onListening);
/**
 * Event listener for HTTP server "listening" event.
 */
function onListening() {
  // var addr = server.address();
  var addr = httpsServer.address();
  var bind = typeof addr === 'string'
    ? 'pipe ' + addr
    : 'port ' + addr.port;
  debug('Listening on ' + bind);
}

4:启动

本地启动:
浏览器进入  https://localhost:3010,  能进去说明本地配置成功,应该会提示域名无效。
服务端启动:
源代码上传后,用pm2启动服务,浏览器访问  aaa.jiangw1.com,  能进去说明本地配置成功

三:注意事项

  • linux服务器要放开 443端口
  • ssl证书文件一定要配置准确
  • node服务的端口一定要暴露出来
  • 域名解析要填准确

到此这篇关于koa2服务配置SSL的实现方法的文章就介绍到这了,更多相关koa2服务配置SSL内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解

    本篇博客主要说明: 前后端框架(本例中是vue和koa)如何发送请求?获取响应? 以及跨域问题如何解决? vue部分: import App from './App.vue' import Axios from 'axios' new Vue({ el: '#app', render: h => h(App), mounted(){ Axios({ method: 'get', url: 'http://localhost:3000', }).then((response) => { cons

  • 详解基于Vue+Koa的pm2配置

    目前使用的技术栈是:前端Vue.后端Koa.数据库Mongodb. 然而每当起服务的时候,都要 npm start . node ./server/app.js ,还要同时保持这两个窗口一直是开着的,很是麻烦. 而且因为我使用的是koa,也没有使用狼叔写的koa脚手架.是自己基于廖雪峰老师的 Koa框架 改的一个小型mvc.导致没有热更新. 为了简化这种没必要的操作及增加热更新,开始想怎么进行优化.于是选择了 pm2 配置pm2 先安装pm2: npm i pm2 . npm i pm2 -g

  • axios携带cookie配置详解(axios+koa)

    话不多说,一个字,干! 前端配置如下: axios.defaults.withCredentials = true; //配置为true axios.post('http://localhost:3000/tpzdz/vote/all', { openid: 'oJ0mVw4QrfS603gFa_uAFDADH2Uc', date: '2018-11-21' }).then(function (response) { console.log(response) }) 前端配置withCreden

  • 详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南

    正如Vue官方所说,SSR配置适合已经熟悉 Vue, webpack 和 Node.js 开发的开发者阅读.请先移步ssr.vuejs.org了解手工进行SSR配置的基本内容. 从头搭建一个服务端渲染的应用是相当复杂的.如果您有SSR需求,对Webpack及Koa不是很熟悉,请直接使用NUXT.js. 本文所述内容示例在 Vue SSR Koa2 脚手架 : https://github.com/yi-ge/Vue-SSR-Koa2-Scaffold 我们以撰写本文时的最新版:Vue 2,Web

  • koa2服务配置SSL的实现方法

    一:前言 1:SSL证书 我的域名在腾讯云,每次解析新建一个三级域名(假设是  aaa.jiangw1.com ),都会赠送一年的SSL,申请成功后下载SSL证书,如下: 可以看到准备了各种服务器的文件,node服务用红圈中的通用ssl文件即可. 2:解析 aaa.jiangw1.com记录类型填 A ,记录值填服务器公网IP 二:代码 以下代码限定 koa2项目,其余node项目也都类似. 1:安装依赖 npm install koa-sslify npm install koa2-cors

  • Nginx 下配置SSL证书的方法

    1.Nginx 配置 ssl 模块 默认 Nginx 是没有 ssl 模块的,而我的 VPS 默认装的是 Nginx 0.7.63 ,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl 模块方法如下: 下载 Nginx 0.7.64 版本,解压 进入解压目录: 复制代码 代码如下: wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz tar zxvf nginx-0.7.64.tar.gz cd nginx-0.7.64 如果要更改heade

  • Tomcat配置SSL证书的方法

    一.先使用JDK自带的加密工具生成一对秘钥文件 进入JDK的bin目录下,打开命令行工具,输入 复制代码 代码如下: keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f:\tomcat.keystore" 这样就会生成一对秘钥文件. 二.通过tomcat的连接器将秘钥文件连接到tomcat中. 在tomcat的安装根目录下新建文件夹ssl,将秘钥文件复制到该文件夹中,打开c

  • 基于注解的Dubbo服务配置方法(实例讲解)

    基于注解的Dubbo服务配置可以大大减少dubbo xml配置文件中的Service配置量,主要步骤如下: 一.服务提供方 1. Dubbo配置文件中增加Dubbo注解扫描 <!-- 开启dubbo注解支持 --> <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 --> <dubbo:annotation package="com.bounter" /> 2.Service实现

  • IIS7下配置SSL的方法分析

    在IIS7中,HTTP.sys在内核模式下操作SSL加密解密,相对于IIS6,这种方式能提高近20%的性能. 当SSL运行于内核模式时,会将SSL绑定信息保存在两个地方.第一个地方,绑定配置保存在%windir%\System32\inetsrv\config\applicationHost.config中,当站点启动时,IIS7发送绑定信息给HTTP.sys,同时HTTP.sys会在特定的IP和端口监听请求.第二个地方,与绑定相关联的SSL配置保存在HTTP.sys配置中.使用netsh命令可

  • 利用keytools为tomcat 7配置ssl双向认证的方法

    SSL简单介绍 SSL(Secure Sockets Layer 安全套接层)就是一种协议(规范),用于保障客户端和服务器端通信的安全,以免通信时传输的信息被窃取或者修改. 1.怎样保障数据传输安全? 客户端和服务器端在进行握手(客户端和服务器建立连接和交换参数的过程称之为握手)时会产生一个"对话密钥"(session key),用来加密接下来的数据传输,解密时也是用的这个"对话密钥",而这个"对话密钥"只有客户端和服务器端知道.也就是说只要这个

  • nginx配置ssl实现https的方法示例

    环境说明 服务器系统:Ubuntu  18.04 64位 nginx:1.14 这篇文章主要是记录配置 https 的步骤,就不介绍申请ca证书的相关细节了 这里有免费的 ssl 证书:https://cloud.tencent.com/act/pro/ssl 我是西部数码的域名,在腾讯云申请的证书 申请证书并签发后,把证书先下载到本地 1.安装 nginx $ apt-get update // 更新软件 $ apt-get install nginx // 安装nginx 2.配置 ca 证

  • docker安装nginx并配置ssl的方法步骤

    最近想在吃灰了一年多的服务器上,安装一下docker,结果始终找不到合适的yum源,后来经过一番百度才知道,原来centos8要凉了,所以好多镜像站都移除了CentOS 8的源. 没办法,短暂的思考之后,决定重装一下操作系统,换成centos7.9,好在服务器上没啥重要东西,只要给blog挪个窝就行了. 重装系统之后,安装docker过程非常顺利. 开始安装nginx. 1.直接拉取最新的nginx镜像 docker pull nginx 2.新建一些目录,把nginx容器内的相关文件夹挂载到宿

  • asp.net基于windows服务实现定时发送邮件的方法

    本文实例讲述了asp.net基于windows服务实现定时发送邮件的方法.分享给大家供大家参考,具体如下: //定义组件 private System.Timers.Timer time; public int nowhour; public int minutes; public string sendTime; public Thread th; public string isOpen;//是否启用定时发送 public string strToEUser; public static i

  • nginx环境下配置ssl加密(单双向认证、部分https)

    nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换(rewrite)到https,后来自动化测试结果说响应速度太慢,https比http慢慢30倍,心想怎么可能,鬼知道他们怎么测的.所以就试了一下部分页面https(不能只针对某类动态请求才加密)和双向认证.下面分节介绍. 默认nginx是没有安装ssl模块的,需要编译安装nginx时加入--with

随机推荐