THINKJS 3.2.7 开启 HTTPS 服务 (用的是阿里云Symantec 免费版 SSL)

大家在使用 ThinkJS 的时候一般都会搭配 Nginx 使用,在 Nginx 中配置 HTTPS 是非常简单的。这样做的原理是 Nginx 接收到 HTTPS 的请求后反向代理到 ThinkJS 服务的端口上,从而达到了 ThinkJS 项目开启 HTTPS 服务的目的。不过有些比较轴的同学可能觉得这种方法还是太麻烦了,经常问 ThinkJS 有没有自带启动 HTTPS 服务的方法。今天我就来给大家说说。

 

(1)首先是获取域名的ssl证书:这里举例阿里云二级域名获取ssl证书,如下图:在域名解析内添加A记录并指向自己服务器的ip地址

THINKJS 3.2.7 开启 HTTPS 服务 (用的是阿里云Symantec 免费版 SSL)

(2)点击自己的域名,点击开启SSL证书,里面有购买证书的,我这里买的是个人免费版的 不花钱

THINKJS 3.2.7 开启 HTTPS 服务 (用的是阿里云Symantec 免费版 SSL)

THINKJS 3.2.7 开启 HTTPS 服务 (用的是阿里云Symantec 免费版 SSL)

(3)证书申请后,等待 审核后,下载证书,我这里下载的是 其他版,里面有两个文件,分别是 .key 和.pem,

 

THINKJS 3.2.7 开启 HTTPS 服务 (用的是阿里云Symantec 免费版 SSL)

这里就不再仔细的讲了,下载好 .key 和.pem 两个证书之后,开始配置 thinkjs,我们打开项目里的config.js分别添加画红线的代码,这里需要注意的的是,thinkjs 的版本,老版本的写法有些不同,老版本属性:create_server 新版本属性:createServer,

具体需要看依赖包内 think.js。底层代码知道如何写。如下图3.2.11的thinkjs依赖包代码,是在config中找到属性字段配置。

THINKJS 3.2.7 开启 HTTPS 服务 (用的是阿里云Symantec 免费版 SSL)

其实方法非常的简单,虽然 ThinkJS 默认是使用 NodeJS 的 http 模块启动服务的,但是作者也同时开放了接口支持用户自定义 server。config.js 中提供了 老版本: create_server   新版本:createServer属性来自定义启动服务,我这里证书是配置的绝对路径,也可以配置相对路径

THINKJS 3.2.7 开启 HTTPS 服务 (用的是阿里云Symantec 免费版 SSL)