博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nuxt https
阅读量:6258 次
发布时间:2019-06-22

本文共 2268 字,大约阅读时间需要 7 分钟。

我用的模板是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 Routesapp.use('/api', api)// Import and Set Nuxt.js optionslet config = require('../nuxt.config.js')config.dev = !(process.env.NODE_ENV === 'production')// Init Nuxt.jsconst nuxt = new Nuxt(config)// Build only in dev modeif (config.dev) {const builder = new Builder(nuxt)builder.build()}// Give nuxt middleware to expressapp.use(nuxt.render)// Listen the serverconst 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/ 

转载于:https://www.cnblogs.com/xiaochongchong/p/9638875.html

你可能感兴趣的文章
五子棋
查看>>
和为S的连续正数序列
查看>>
三周的 软件工程实践课 课程安排建议
查看>>
解决冲突-git入门教程
查看>>
修改ssh端口后无法连接ssh了?
查看>>
[android] 隐式意图的配置
查看>>
HQL: Hibernate查询语言
查看>>
SQL优化之六脉神剑
查看>>
java生成随机字符串uuid
查看>>
黄永成-thinkphp讲解-个人博客讲解26集
查看>>
Mongodb(2)创建数据库,删除数据库,创建集合,删除集合,显示文档内容
查看>>
Tomcat禁止显示目录和文件列表
查看>>
linux mmap 详解【转】
查看>>
注释中不允许出现字符串 "--"。
查看>>
client 如何找到正确的RegionServer(HBase -ROOT-和.META.表)
查看>>
协议森林16 小美的桌号(DHCP协议)
查看>>
简单的ajax封装
查看>>
PHP初学者必须掌握的10个知识点
查看>>
[Asp.Net]获取客户端ip和mac地址
查看>>
Arcengine设置坐标系(转载)
查看>>