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端口
所以我们先看一下当前哪些端口是开启的
命令行输入
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了
有需要的小伙伴,将代码中的 ‘已签发证书’ 替换为你的域名即可
nodejs从http升级到https(阿里云证书的使用)的更多相关文章
- https阿里云证书购买与apache环境配置
1.在阿里云云盾安全->CA证书购买 2.下载证书解压文件,一般有四个文件 3.在/etc/apache2 下创建一个文件夹cert 放入以上四个文件(路径可自己任意选择) 4.$sudo a ...
- [转帖学习] 使用阿里云证书 升级https
nodejs从http升级到https(阿里云证书的使用) https://home.cnblogs.com/u/lhyxq/ 改天买一个域名自己试试. 升级原因 1.各大搜索引擎中,https ...
- 网站http配置https -- 阿里云 nginx
通过阿里云领取免费证书可将网站配置为https 步骤为下: 登陆阿里云点击sll证书,然后点击购买证书 选择免费的 然后立即购买 购买后会让你填写一些域名信息 然后提交签发证书 签发后点击下方下载 选 ...
- Spring Boot使用阿里云证书启用HTTPS
1.到阿里云下载证书页面下载证书 2.根据页面内容,可以使用2种证书:PFX JKS 把对应证书放到src/main/resources目录下 在application.properties文件中加入 ...
- 三步解决fiddler升级后https无法通过证书验证问题
有时候使用fiddler时,https页面会出现错误提示,我们可以这样设置来避免错误 第一步:去掉https的抓取 Tools>Option 去掉Capture HTTPS CONNECTs 的 ...
- Ubuntu16下apache2安装ssl阿里云证书
1.用下面的命令确保ssl模块已经加载进apache: a2enmod ssl 如果你看到了“Module ssl already enabled”这样的信息就说明你成功了,如果你看到了“Enabli ...
- 阿里云免费ssl,https证书的申请和校验
其实写这个之前一直在考虑要不要写出来 ,真的官方文档实在太强大了,连视频都给你录好了,配不好的,是不是可以考虑不用写程序了, 忽然想到第一次使用微信测试号,进行域名认证的时候,因为后台返回“echar ...
- 【故障公告】升级阿里云 RDS SQL Server 实例故障经过
昨天晚上,我们使用的阿里云 RDS SQL Server 2008 R2 实例突然出现持续 CPU 100% 问题,后来我们通过重启实例恢复了正常(详见故障公告).但是在恢复正常后发现了新问题,这台 ...
- 在阿里云购买SSL证书,让网站支持HTTPS
SSL简介 引自:https://baike.baidu.com/item/ssl/320778?fr=aladdin SSL SSL(Secure Sockets Layer 安全套接层),及其继任 ...
随机推荐
- 多个css样式合并到一个“目录”css文件中
执行访问jsp后发现没有效果 同样的代码,在html中效果对比如下: 具体原因:不清楚,暂时记着~~~在jsp中不支持@import这种css样式的引用
- python入门学习0
Python 是什么类型的语言 Python是脚本语言 Python下载地址:https://www.python.org/downloads/ Python版本:Python 3.4.2 - 64b ...
- javascript中正则表达式中的 match,exec,test,replace 之我理解
这个正则 ($&) 的语法: https://msdn.microsoft.com/library/3k9c4a32(v=vs.94).aspx 在ECMAScript中对这几个的说明: ma ...
- inline、block与inline-block
参考了一些资料集其他人的博客,梳理一下inline.block与inline-block三个概念. 高度 宽度 举例 block 在新行上开始 高度,行高以及顶和底边距都可控制 宽度缺省是它的 ...
- 一个JavaBean和DTO转换的优秀案例
所有的JavaBean和DTO的互相转换接口,JavaBean转化成DTO或者DTO转换JavaBean: public abstract class Converter<A, B> { ...
- jQueryEasyUI学习笔记
data-options 是jQuery Easyui的一个特殊属性.通过这个属性,我们可以对easyui组件的实例化可以完全写入到html中 data-options="region:'w ...
- 【Django】关于上传图片遇到的问题
今天测试上传图片的时候,发现一只报错说找不到文件:FileNotFoundError 通过检查路径的输出,发现首先在settings配置路径的时候有问题 MEDIA_ROOT=os.path.join ...
- 20175314 《Java程序设计》第二周学习总结
20175314 <Java程序设计>第二周学习总结 教材学习内容总结 我在APPstore上发现了一个可以支持我们在IOS系统上学习实践Java程序的开发环境,只需要购买专业版就可以使用 ...
- java【基础】正则表达式
1 字符串判断 java的正则使用的是Pattern以及Matcher来配合使用的. 如果只是用来判断输入的字符串是否符合格式,推荐使用Matcher的matches方法. public static ...
- 设置textfield 文字左边距
默认情况下,当向textField输入文字时,文字会紧贴在textField左边框上.我们可以通过设置textField的leftView,设置一个只有宽度的leftView.这样还不够,因为默认le ...