[转帖学习] 使用阿里云证书 升级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)
随机推荐
- 10.14 (上午)开课一个月零十天 (PHP环境搭建)
一.修改APACHE的监听端口 2 1.在界面中选apache,弹出隐藏菜单选项,打开配置文件httpd.conf; 2.找到Listen 80 和 ServerName localhost:80; ...
- 1433: [ZJOI2009]假期的宿舍
1433: [ZJOI2009]假期的宿舍 链接 分析: 直接网络流,看是否满足即可. S向每个有需要的人连边,有床的向T连边,认识的人之间互相连边. 代码: #include<cstdio&g ...
- 解决Linux下编译.sh文件报错 unexpected operator Syntax error: word unexpected
执行一个脚本 发现报语法错误,但是在其他机器上运行都没有问题 唯一的区别就是 一个是centos机器 报错的是ubuntu 网上搜索了一下 因为Ubuntu默认的sh是连接到dash的,又因为da ...
- Model详解
一.数据库操作 Model操作: 创建数据库表结构(建表) 操作数据库表(增删改查) 做一部分的验证(验证) a.建表 1.表字段 AutoField(Field) - int自增列,必须填入参数 p ...
- UWP 轨道视图Orbit View
先看一下效果吧 这是我的Music Tags App里面的效果图,当然你也可以做的比我的更炫. 其实这个效果的实现来自于控件UWP Community Toolkit的OrbitView,所以大家要多 ...
- Appium知识积累
1.使用uiautomatorviewer 可以直接在命令行输入uiautomatorviewer,打开获取屏幕截图工具,连接手机,打开所要获取包名的应用,然后获取其截图,根据截图查看package即 ...
- 六大iT公司的组织结构
- Webrtc源码走读(一)
阅读event_wrapper.h event_wrapper_win.cpp 的实现 自己对“事件”这个词没有深的理解,通过看段代码,好像有点感觉,类似与C#的AutoResetEvent
- mongoose和mongodb的几篇文章 (ObjectId,ref)
http://mongoosejs.com/docs/populate.html http://stackoverflow.com/questions/6578178/node-js-mongoose ...
- 2017年10月WEB前端开发实习生面试题总结
从大一开始学习前端,今年大三,10月份开始投简历,陆续收到很多家公司的面试,目前为止的面试通过率是百分之百,总结下面试题. 不定期更新中... 百度第一次 一面 1.AJAX流程 2.promise简 ...