You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
constkoa=require('koa');constapp=newkoa();constport=process.env.PORT||3000consthttps=require('https')constfs=require('fs')constsslOptions={key: fs.readFileSync('./ssl/server.key'),cert: fs.readFileSync('./ssl/server.pem')}https.createServer(sslOptions,app.callback()).listen(port,()=>{console.log('server start up at https://localhost:'+port)})
前言
本文将分享几种为站点启用HTTPS的方法,内容包括:
前提准备
CentOS 7.4
)www.example.com
)证书
Symantec
阿里云可以购买有效期一年的免费证书,审核时间大概10分钟,优点是域名不用备案。强烈推荐。
购买后,点击下载
即可获得证书
letsencrypt
虽然是免费的,但安装比较费时间,如果网络不太好,会很捉急。
其证书获取方式后文会讲。
Node.js应用
下面以koa2构建node.js应用 + Symantec为例,说明如何为接口开启https。
在项目根目录新建文件夹
把Symantec的证书文件放到该目录下。
假设两个文件的名称分别为:
server.key
server.pem
新建
index.js
文件编写以下代码
启动应用即可看到效果。
Nginx代理静态资源
下面讲解如何在CentOS机器上,使用Nginx + letsencrypt为静态网站开启HTTPS。
注: Ubuntu版本参考这里
1.首先更新yum仓库(需要等待一段时间)
2.安装Nginx
可以先跑一下Nginx
然后在浏览器访问
www.example.com
, 如果看到Nginx的欢迎页, 说明安装成功3.安装letsencrypt以获取免费证书
修改Nginx配置:
找到80关键字,强制对80端口的请求重定向到HTTPS协议
找到443关键字, 把注释打开, 即把
#
去掉假设静态文件的根路径为
/path/dir
, 把它写在Nginx配置文件里根据路径以及域名,生成证书及密钥
成功后, 控制后会打印出生成文件的路径, 把它们写在Nginx配置文件里
4.查检openssl版本
如果版本大于等于
1.02
, 那就是ok的, 否则, 需要升级openssl.如何升级? 如果使用最新内核的Linux操作系统, 是不会遇到这种问题的, 真的遇到了, 自己google吧😄
5.重启Nginx
重新访问你的站点, 发现地址栏多了一把绿色的锁, 恭喜, 这正是使用HTTPS协议的标志!
6.定期更新证书
因为Let’s Encrypt 的证书90天就过期了, 所以可以写个定时任务
每星期1的0点0分执行更新操作,0点5分执行Nginx 重启
The text was updated successfully, but these errors were encountered: