(原)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证书的主要内容,如果未能解决你的问题,请参考以下文章

腾讯云HTTPS设置管理

nginx下如何配置 ssl证书?腾讯云ssl证书为例!

腾讯云服务器申请免费SSL证书,实现Https。

腾讯云域名申请+ssl证书申请+springboot配置https

项目迁移腾讯云后,用户反馈,https证书不匹配。

阿里云和腾讯云免费SSL证书