[转帖学习] 使用阿里云证书 升级https
nodejs从http升级到https(阿里云证书的使用)
升级原因
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了
有需要的小伙伴,将代码中的 ‘已签发证书’ 替换为你的域名即可
[转帖学习] 使用阿里云证书 升级https的更多相关文章
- Spring Boot使用阿里云证书启用HTTPS
1.到阿里云下载证书页面下载证书 2.根据页面内容,可以使用2种证书:PFX JKS 把对应证书放到src/main/resources目录下 在application.properties文件中加入 ...
- [网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断
大家好,阿里云将于3月10日23:00-4:00对负载均衡服务(SLB)做升级操作,升级期间SLB网络连接会有约4-8次闪断.由此给您带来麻烦,敬请谅解! 阿里云SLB升级公告内容如下: 尊敬的用户: ...
- 配置阿里云SLB全站HTTPS集群
配置阿里云SLB全站HTTPS集群(以下内容仅为流程,信息可能有些对应不上) 1 登录阿里云购买两台实例 1.1 按量付费购买两台实例 1.2 配置网络可以不选择分配外网 1.3 自定义密码 1.4 ...
- nodejs从http升级到https(阿里云证书的使用)
升级原因 1.各大搜索引擎中,https的网页的权重比一般的http的网页权重要高. 2.从用户体验的角度,一个老是被浏览器提醒该网页不可信的网页,总不会让用户感到安心 所以将网站从http升级为ht ...
- [云上天气预报-有时有闪电]2月3日23:00-4:00阿里云SLB升级期间网络会闪断
大家好,2月3日23:00-2月4日4:00,阿里云将对SLB(负载均衡)进行升级,在升级期间,SLB会有约4-8次的网络闪断.由此给您带来麻烦,望谅解! 阿里云官方公告内容如下: 尊敬的用户: 您好 ...
- [网站公告]23:00-05:00阿里云SLB升级会造成4-8次每次10秒的闪断
大家好,阿里云将于今天夜里(7月29日23:00-7月30日05:00)对负载均衡服务(SLB)进行升级操作,升级期间我们使用的SLB实例会有4-8次的闪断,每次闪断时间10秒左右.闪断期间会造成网站 ...
- openssl CA 自签证书,阿里云配置tomcat https
<一,openssl CA自签发证书> 1,生成私钥 openssl genrsa 1024 > private.key;
- nginx+腾讯云免费ssl证书+阿里云ECS实现Https配置
1. 申请SSL证书: 首先我们需要到腾讯云那边申请一个ssl证书,对于个人博客类型的,建议采用免费版本,土豪除外 申请地址:https://console.cloud.tencent.com/ssl ...
- 阿里云申请免费https证书 + IIS服务器安装
参考: 阿里云免费SSL证书申请与安装使用(IIS7)
随机推荐
- 使用Random随机生成[min,max]之间的整数:
如下代码是生成范围在min到max之间的随机整数(包括min和max): import java.util.Random; /** * 生成[min,max]的随机整数 * @author mei ...
- day1 UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 2490: illegal multibyte sequence 错误提示
get方式得到网页的信息 #coding=utf-8 #pip install requests #直接get到网页的信息 import requests from bs4 import Beauti ...
- 博弈论简单入门sb总结
博弈论简单入门sb总结 下午讲博弈论.没预习,GG. 整个下午都在学. 0 有一堆共n个石子,两个人轮流取石子,每个人一次可以取1到k个,取到最后一个石子的人胜利. 小学生都会的sb题.若k+1|n, ...
- python基础—字典
阅读文本需要3分钟,不建议跳读 节目清单 字典是python中最重要的数据类型,字典由“键-值”对组成的集合,字典中的“值”通过“键”来引用.这里将介绍字典的定义.访问.排序等功能. 字典的创建 字典 ...
- 行为事件(ActionChains)源码详解
ActionChains简介 actionchains是selenium里面专门处理鼠标相关的操作如:鼠标移动,鼠标按钮操作,按键和上下文菜单(鼠标右键)交互. 这对于做更复杂的动作非常有用,比如悬停 ...
- 使用CDN后配置nginx自定义日志获取访问用户的真实IP
问题描述: 新上线了一个项目,架构如下(简单画的理解就好): 问题是:负载前面加上CDN后负载这里无法获取客户的真实访问IP,只能过去到CDN的IP地址: 问题解决: 修改nginx日 ...
- TPO-23 C2 Advice on choosing courses
第 1 段 1.Listen to a conversation between a student and his English professor. 请听一段学生与他的英文教授的对话. 第 2 ...
- 网格系统-bootStrap4常用CSS笔记
.row 定义一行 .col 均分列数,最多一行12列.每列左右间隙各15px .col-{1到12} 定义在所有屏幕下的列宽 .col-{sm|md|lg|xl}-{1到12} 定义在指定屏幕下该列 ...
- SICP读书笔记 3.5
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...
- gitlab+jenkins持续集成(二)
1.jenkins服务器上的配置 -bin.tar.gz -C /opt/ yum install -y git /conf/settings.xml #只需更改maven的地址 <?xml v ...