(原)thinkjs使用腾讯云https证书
Posted 工程师阿杜
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(原)thinkjs使用腾讯云https证书相关的知识,希望对你有一定的参考价值。
腾讯https证书
腾讯云申请https证书后,下载的证书中包含以下目录&文件:
- Apache\\
- IIS\\
- nginx\\
- Tomcat\\
- www.xxx.com.csr
修改代码结构&载入https
我们只需要Nginx
目录下的两个文件,格式分别是:
- *.crt
- *.key
把他们拷贝到ThinkJS工程某个目录,比如对于我的工程,目录如下:
\\ssl\\Nginx\\1_www.xxx.crt
整体结构如下:
然后,修改ThinkJS的启动方式。
打开src\\common\\config\\config.js
文件,添加如下内容:
import fs from 'fs';
// 引入https
import https from 'https';
// 载入证书文件
// 请注意,这里的 think.ROOT_PATH 指向的是 项目源码根目录
const options =
// 注意文件路径!
key: fs.readFileSync(think.ROOT_PATH + '/ssl/Nginx/2_www.xxx.com.key'),
cert: fs.readFileSync(think.ROOT_PATH + '/ssl/Nginx/1_www.xxx.crt')
;
const app = (callback, port, host, think) =>
let server = https.createServer(options, callback);
server.listen(port, host);
return server;
module.exports =
// 重点
createServer: app,
// https默认443端口,推荐改为443
port: 443,
...
启动即可!
注意两点:
1、证书尽量不要放入源码中,防止泄露
2、今后再运行’https://localhost:443’是不行的,原因就是,腾讯云的证书是颁发给www.xxx.com
的,而不是’localhost’的,因此’https://localhost’是非法的,当然就无法使用了,简单的解决办法是,开发模式下,还用http,即可。
以上是关于(原)thinkjs使用腾讯云https证书的主要内容,如果未能解决你的问题,请参考以下文章