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. 【转载】MFC怎么封装CreateWindow

    原文:http://blog.csdn.net/weiwenhp/article/details/8796337 我们知道Win32中创建一个窗口的流程就是先注册一个WNDCLASSEX(指定了窗口的 ...

  2. 在eclipse中运行spring web application时的异常: java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

    严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis ...

  3. AFO预定

    妈耶 数论题都不会 推不出式子 题解都看不懂 还是思维jiang化了 布星了 吃枣药丸 祝yyb进队 祝zsy进队 祝鸡贼进队

  4. CSS快速入门-盒子模型

    一.CSS盒子模型概述 css盒子模型 又称框模型 (Box Model) ,包含了元素内容(content).内边距(padding).边框(border).外边距(margin)几个要素. con ...

  5. 动态权限<二>之淘宝、京东、网易新闻 权限申请交互设计对比分析

    移动智能设备的快速普及,给生活带来巨大的精彩,但是智能设备上用户的信息数据很多,隐私数据也非常多,各种各样的app可能通过各种方式在悄悄的收集用户数据,而用户的隐私就变得耐人寻味了.比如之前的可以无限 ...

  6. 第二节:用PE安装Windows系统

    用PE安装Windows系统 认识PE系统 Windows Preinstallation Environment(Windows PE),Windows预安装环境,是带有有限服务的最小Win32子系 ...

  7. 阿里云Linux的mysql安装,使用yum安装

    1.下载 我下载的mysql5.7 rpm格式的,在Linux的根目录下下载(防止出现安装的问题) wget https://dev.mysql.com/get/mysql57-community-r ...

  8. if _ else if _ else,case,程序逻辑判断- java基础

    //单个判端 if(){ } //双判端 if(){ }else{ } //多重判端 if(){ }else if(){ }else if(){ }else{ } package test1; // ...

  9. C++ 单例模式总结与剖析

    目录 C++ 单例模式总结与剖析 一.什么是单例 二.C++单例的实现 2.1 基础要点 2.2 C++ 实现单例的几种方式 2.3 单例的模板 三.何时应该使用或者不使用单例 反对单例的理由 参考文 ...

  10. shell编程基础(转载)

    Shell编程基础 原作者 Leal:请参阅页面底部的编者列表. 授权许可: 创作共享署名协议 GNU 自由文档许可证 注意:本文仍然在持续的修订之中,且错漏之处可能较多.如果能够阅读英语的话,可以考 ...