我用的模板是nxut-express,版本是:1.4.2。服务器:阿里云。
一、申请免费证书:
网站能通过https访问,首先得申请https证书,付费的阿里云上有售卖的,一年几千块。免费的可以通过certbot工具生成,也可以去阿里云上获取。

1、certbot
certbot官网:https://certbot.eff.org/
certbot和let's encrypt什么关系?我的理解,certbot是更方便的生成let's encrypt签发证书的一个工具。
2、阿里云
阿里云的免费证书在 域名服务->找到对应的域名->管理->免费开启SSL证书,最后去下载证书。下载下来是2个文件。
二、nuxt配置
我用的nuxt是有sever文件夹的,其中sever/index.js:

const fs = require('fs');
const http = require('http');
const https = require('https');
const path =require('path'); import express from 'express'
import bodyParser from 'body-parser';
import { Nuxt, Builder } from 'nuxt'
import {timed} from "./schedule/index"; import api from './api' const app = express()
const host = process.env.HOST || '127.0.0.1'
const port = process.env.PORT || 3000; // app.set('port', port)
//express.static 函数提供的路径相对于您在其中启动 node 进程的目录。
app.use('/static',express.static('static'));
app.use(express.static('./')); //./这是命令运行的位置 app.use(bodyParser.json({limit: '1mb'})); //这里指定参数使用 json 格式
app.use(bodyParser.urlencoded({
extended: true
})); // Import API Routes
app.use('/api', api) // Import and Set Nuxt.js options
let config = require('../nuxt.config.js')
config.dev = !(process.env.NODE_ENV === 'production') // Init Nuxt.js
const nuxt = new Nuxt(config) // Build only in dev mode
if (config.dev) {
const builder = new Builder(nuxt)
builder.build()
} // Give nuxt middleware to express
app.use(nuxt.render) // Listen the server
const httpServer = http.createServer(app);
httpServer.listen(port, host,function(){
console.log('http启动...');
});
console.log('Server listening on ' + host + ':' + port) // eslint-disable-line no-console
//io //https相关
if(process.env.NODE_ENV === 'production'){
const privateKey = fs.readFileSync(path.resolve(__dirname,'cert_ali/1538367494158.key'),'utf8');
const certificate = fs.readFileSync(path.resolve(__dirname,'cert_ali/1538367494158.pem'), 'utf8');
// const ca = fs.readFileSync(path.resolve(__dirname,'cert/chain.pem'), 'utf8'); const credentials = {
key: privateKey,
cert: certificate,
// ca: ca
};
const httpsServer = https.createServer(credentials, app);
httpsServer.listen(443,host,function(){
console.log('https启动...');
})
}

  

这段代码只在生产环境启用https服务。

三、管理阿里云防火墙,开启443端口
前面2步骤结束后,一直访问https没反应,不报错也不返回任何东西,一直在加载网站。

我的网站,直播客:

https://www.zhiboke.site/

最新文章

  1. 提取ecshop的mysql类
  2. LeetCode 27 Remove Element
  3. 【随记】修复TortoiseGit文件夹和文件状态图标不显示问题
  4. svn server安装配置
  5. javascript 事件响应
  6. Spring中资源的加载ResourceLoader
  7. iOS开发从申请开发账号到APP上架的整体流程详解
  8. spring boot MySQL极简封装
  9. java 对一个字符串进行加减乘除的运算
  10. 007-优化web请求三-异步调用【WebAsyncTask】
  11. 定时任务redis锁+自定义lambda优化提取冗余代码
  12. [Codeforces_713A]Sonya and Queries
  13. 黑盒测试用例设计——PICT
  14. 仿ArrayList功能的bag类
  15. sql developer连接mysql
  16. (20)Cocos2d-x中的引用计数(Reference Count)和自动释放池(AutoReleasePool)
  17. NOIP2017 D2T2宝藏
  18. 【opencv】projectPoints 三维点到二维点 重投影误差计算
  19. getElementsByName属性
  20. fmri数据分析图像格式及转换问题——基于spm讨论

热门文章

  1. C++对象内存分布(3) - 菱形继承(virtual)
  2. hdu5396 Expression 区间dp +排列组合
  3. ACdream 1125(ACfun-字典序)
  4. Yii中使用RBAC全然指南
  5. 技术架构model
  6. JavaScript Patterns 2.6 switch Pattern
  7. C#中的文件导出大全
  8. [bzoj3274]Circle
  9. 洛谷P2303 [SDOi2012]Longge的问题
  10. [Swift通天遁地]九、拔剑吧-(15)搭建具有滑出、视差、3D变形等切换效果的引导页