大家在使用 ThinkJS 的时候一般都会搭配 Nginx 使用,在 Nginx 中配置 HTTPS 是非常简单的。这样做的原理是 Nginx 接收到 HTTPS 的请求后反向代理到 ThinkJS 服务的端口上,从而达到了 ThinkJS 项目开启 HTTPS 服务的目的。不过有些比较轴的同学可能觉得这种方法还是太麻烦了,经常问 ThinkJS 有没有自带启动 HTTPS 服务的方法。今天我就来给大家说说。
(1)首先是获取域名的ssl证书:这里举例阿里云二级域名获取ssl证书,如下图:在域名解析内添加A记录并指向自己服务器的ip地址
(2)点击自己的域名,点击开启SSL证书,里面有购买证书的,我这里买的是个人免费版的 不花钱
(3)证书申请后,等待 审核后,下载证书,我这里下载的是 其他版,里面有两个文件,分别是 .key 和.pem,
这里就不再仔细的讲了,下载好 .key 和.pem 两个证书之后,开始配置 thinkjs,我们打开项目里的config.js分别添加画红线的代码,这里需要注意的的是,thinkjs 的版本,老版本的写法有些不同,老版本属性:create_server
新版本属性:createServer,
具体需要看依赖包内 think.js。底层代码知道如何写。如下图3.2.11的thinkjs依赖包代码,是在config中找到属性字段配置。
其实方法非常的简单,虽然 ThinkJS 默认是使用 NodeJS 的 http 模块启动服务的,但是作者也同时开放了接口支持用户自定义 server。config.js
中提供了 老版本: create_server
新版本:createServer属性来自定义启动服务,我这里证书是配置的绝对路径,也可以配置相对路径