nodejs从http升级到https(阿里云证书的使用)

 https://home.cnblogs.com/u/lhyxq/
 
改天买一个域名自己试试.

升级原因

1.各大搜索引擎中,https的网页的权重比一般的http的网页权重要高。

2.从用户体验的角度,一个老是被浏览器提醒该网页不可信的网页,总不会让用户感到安心

所以将网站从http升级为https是很有必要的

用户配置

首先介绍一下这次升级的网站

使用阿里云的ecs服务器(不是广告)

nodejs+express网站后台

使用的证书为阿里云提供的免费证书

证书申请

首先你要将网站升级为https那么你得有权威机构发给你的证书(自己签发的证书可能会有问题在此不提)

但是一般的证书签发机构都是要收费的,那么不想花钱的小伙伴们怎么办呢?

免费的证书当然是有的,如果你恰好也是阿里云的用户,其他服务商可能也有,但是没有用过,不过大概流程应该是类似的

首先登录你的阿里云,然后进入控制台选择产品与服务

往下滑你会看到在安全分类中有证书

进入后可以购买免费证书,由于我已经购买所以在此就不做示范了

点击下载

这里选择下载nginx的版本

请注意这里的证书只有是系统自动给你生成的才能够改后缀

改后缀的原因在下面会讲到

然后打开下载的文件 将.pem后缀的文件修改为.crt

修改完成后就可以开始nodejs服务器的配置了

Node配置

我们都知道node创建服务器是通过http.createSever创建的

那么我们要将服务器设置为https访问就需要使用https.createSever来创建服务器

这个方法接收的参数如下

第一个参数为整数的配置信息

key为.key后缀的文件

cret为.crt后缀的文件

这里用fs模块读取即可

代码如下

const https = require('https'),
    app = express(),
    fs = require('fs');

//省略express配置的部分

https.createServer({
  key: fs.readFileSync('./module/1536605146003.key'),//证书文件的存放目录
  cert: fs.readFileSync('./module/1536605146003.crt')
},app).listen(443,'0.0.0.0');//https默认是443端口

首先本地测试一下

启动node服务器

输入https://localhost

如果正常你会看到浏览器给你的警告,因为你的证书是颁发给你的域名的,你在本地环境使用相当于冒用了你网站的证书所以浏览器会给出如下警告

在这里为了验证服务是否正常启动

点击高级

然后继续前往(平时访问网站请不要这么搞,炸了请勿找我)

然后你会看到你项目的正常页面,这里我就不展示我的项目了

如果能看到你项目的正常页面说明访问成功

下一步可以配置到服务器上了

服务器配置(centos7)

首先通过xftp将修改后的node配置传输到服务器上

修改完成后重启服务器,不出意外的话是无法访问的,因为你的服务器很有可能没有开启443端口

所以我们先看一下当前哪些端口是开启的

命令行输入

1
firewall-cmd --zone=public --list-ports

 这里看到我已经开启了443端口

如果没有打开的小伙伴依次如输入

firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

再次执行最上面的命令应该即可以看到开放了443端口

开放过后应该就可以通过https的方式访问你的网站了

网站重定向

虽然在上方的操作完成后我们已经可以用https访问你的网站了

但会存在一些问题

比如你以前的用户并不知道你升级到了https或者你还有其他域名指向同一个网站

就比如我有两个域名都指向这同一个网站并且都解析在80端口

所以我需要将所有域名都指向我的新https的域名,并且让使用http访问的用户也能访问到升级过后的网站

所以我还需要写一个nodejs服务器帮我监听原来的80端口,并让它重定向到我的新网址

这里直接贴出代码

const http = require('http');

let sever = http.createServer(function (req,res) {
  res.writeHead(301,{'Location':'https://已签发证书的网址'});
  res.end();
});

sever.listen(80,'0.0.0.0');

然后丢到服务器上,并启动这样就可以将我们的网站平滑地过渡到https了

有需要的小伙伴,将代码中的 ‘已签发证书’ 替换为你的域名即可

 
 
标签: node阿里云

[转帖学习] 使用阿里云证书 升级https的更多相关文章

  1. Spring Boot使用阿里云证书启用HTTPS

    1.到阿里云下载证书页面下载证书 2.根据页面内容,可以使用2种证书:PFX JKS 把对应证书放到src/main/resources目录下 在application.properties文件中加入 ...

  2. [网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断

    大家好,阿里云将于3月10日23:00-4:00对负载均衡服务(SLB)做升级操作,升级期间SLB网络连接会有约4-8次闪断.由此给您带来麻烦,敬请谅解! 阿里云SLB升级公告内容如下: 尊敬的用户: ...

  3. 配置阿里云SLB全站HTTPS集群

    配置阿里云SLB全站HTTPS集群(以下内容仅为流程,信息可能有些对应不上) 1 登录阿里云购买两台实例 1.1 按量付费购买两台实例 1.2 配置网络可以不选择分配外网 1.3 自定义密码 1.4 ...

  4. nodejs从http升级到https(阿里云证书的使用)

    升级原因 1.各大搜索引擎中,https的网页的权重比一般的http的网页权重要高. 2.从用户体验的角度,一个老是被浏览器提醒该网页不可信的网页,总不会让用户感到安心 所以将网站从http升级为ht ...

  5. [云上天气预报-有时有闪电]2月3日23:00-4:00阿里云SLB升级期间网络会闪断

    大家好,2月3日23:00-2月4日4:00,阿里云将对SLB(负载均衡)进行升级,在升级期间,SLB会有约4-8次的网络闪断.由此给您带来麻烦,望谅解! 阿里云官方公告内容如下: 尊敬的用户: 您好 ...

  6. [网站公告]23:00-05:00阿里云SLB升级会造成4-8次每次10秒的闪断

    大家好,阿里云将于今天夜里(7月29日23:00-7月30日05:00)对负载均衡服务(SLB)进行升级操作,升级期间我们使用的SLB实例会有4-8次的闪断,每次闪断时间10秒左右.闪断期间会造成网站 ...

  7. openssl CA 自签证书,阿里云配置tomcat https

    <一,openssl CA自签发证书> 1,生成私钥 openssl genrsa 1024 > private.key;

  8. nginx+腾讯云免费ssl证书+阿里云ECS实现Https配置

    1. 申请SSL证书: 首先我们需要到腾讯云那边申请一个ssl证书,对于个人博客类型的,建议采用免费版本,土豪除外 申请地址:https://console.cloud.tencent.com/ssl ...

  9. 阿里云申请免费https证书 + IIS服务器安装

    参考: 阿里云免费SSL证书申请与安装使用(IIS7)

随机推荐

  1. P4427 [BJOI2018]求和

    P4427 [BJOI2018]求和 同[TJOI2018]教科书般的扭曲虚空 懒得写了(雾 #include<bits/stdc++.h> #define il inline #defi ...

  2. P3707 [SDOI2017]相关分析

    P3707 [SDOI2017]相关分析 线段树裸题?但是真的很麻烦QAQ 题目给的式子是什么不用管,大力拆开,就是\(\frac{\sum x_iy_i-\overline xy_i-\overli ...

  3. C#面试题及答案 一 <转来的,貌似有看评论说有错误,正在一个个纠正中…… 也望园友们指出>

    1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private  私有成员, 在类的内部才可以访问.  protected  保护成员 ...

  4. Python 循环的技巧

    当在字典中循环时,用 items() 方法可将关键字和对应的值同时取出 >>> knights = {'gallahad': 'the pure', 'robin': 'the br ...

  5. [工具]chrome添加crx扩展程序(附禁止复制破解扩展)

    Hello亲爱的观众朋友们大家好,我是09. 今天带来墙内用户安装chrome插件的方法. 1.打开扩展程序 2.把crx往里拖,欧了. ps.顺带安利chrome禁止复制破解扩展Enable Cop ...

  6. K-SVD字典学习及其实现(Python)

    算法思想 算法求解思路为交替迭代的进行稀疏编码和字典更新两个步骤. K-SVD在构建字典步骤中,K-SVD不仅仅将原子依次更新,对于原子对应的稀疏矩阵中行向量也依次进行了修正. 不像MOP,K-SVD ...

  7. Redis源码阅读(三)集群-连接初始化

    Redis源码阅读(三)集群-连接建立 对于并发请求很高的生产环境,单个Redis满足不了性能要求,通常都会配置Redis集群来提高服务性能.3.0之后的Redis支持了集群模式. Redis官方提供 ...

  8. Docker 自定义网络

    1.创建自定义网络 docker network create -d bridge --subnet 172.25.0.0/16 network_name 2.redis docker 添加到网络 d ...

  9. 程序设计 之 C#实现《拼图游戏》 (上)代码篇

    原理详解请参考博客中 拼图游戏(下)原理篇 http://www.cnblogs.com/labixiaohei/p/6713761.html 功能描述: 1.用户自定义上传图片 2.游戏难度选择:简 ...

  10. python实现简单线性回归

    之前推导了一元线性回归和多元线性回归,今天就用python来实现一下一元线性回归 先看下之前推导的结果   ,  第一种是用循环迭代的计算方法.这里的x,y是numpy中的array类型 def su ...