Featured image of post 随笔 0720

随笔 0720

最近的一些碎碎念

扬城的雨

似乎是每年都有的,准时的,扬州的暴雨。

集中在 7 月,也就是暑假,我依然记得当时疫情时大家发明的词语 “涝疫结合”。只是现在没有 “疫” 而已,但是 “涝” 依然还在。

从 7.1 我就开始关注天气预报了,似乎是每天都有雨,今年的雨季比以往更多,雨量更大

image-20230722093548652

公众号也一直推送着降雨的信息。扬城也彻底变成了“洋城”(海洋的洋)。

不过我家由于地势原因,实际上没受到太大影响,像是一些低地势的地方自然是首当其冲。根据他们发的图片,基本上骑个电动车水都漫到膝盖了😅虽然每年都很严重,但是今年格外严重。(去年是热死人,今年是淹死人😢)

image-20230722094012744

蚊子般的项目综合实践

从 7.1 到 7.21,这期间一直被志强折磨着😇,而且还不快点结束居然拖了 20 天,也不知道图什么,难受

本来系统其实已经做好了,但是如果单独验收我怕问很多问题,就想拖着集体验,没想到这一拖居然就拖了十几天,期间还不停的发一些要求,属于是看着就烦(每次选他的课都是这种结局,很喜欢他的自我沉浸式讲课,完全是讲给自己听)

实验报告的撰写也是个另人头疼的事,不过还好我有 ChatGPT😎,等着答辩时直接把问题丢给 ChatGPT 了。

最近干的一些蠢事

回收站里存了好多 node_modules 文件夹,删除的时候要删 15 万个文件,删了快十分钟

IMG_0154

做完题目睡觉前没关录音(我一般把录音功能当作计时器来用),发现时已经录了十个小时,内存爆炸

IMG_1670

吃火鸡面,结果肚子疼😇但是火鸡面真的很好吃

IMG_0185

域名备案

下午做题的时候就突然收到一条短信,定睛一看,域名的备案居然通过了!有一点小小的惊喜。

我是从7.9提交的备案申请,到今天差不多十个工作日(注意是工作日,周末那些不算的,实际上还是等了很久的😇)

image-20230722085629303

说一下我为什么要备案吧。

国内的域名基本上不备案很难有说作为。大厂CDN用不了,只能通过Vercel部署(然而Vercel我感觉不太稳定)。前不久做(抄)的微信小程序也要备案,基本上就是没有备案就寸步难行。考虑到可持续发展,这个博客我是会一直做下去的,所以我觉得有必要给他弄一个“身份证”☺️

域名选购

起始我原本的域名选的是不太好的,因为当时没什么经验,纯粹就是和同学看便宜买了玩的。

我当时选的是.love域名,看起来很高级是吧😎那价格怎么样呢?只要一块钱!一年!对于新手来说谁不心动啊,不就相当于免费吗?管他有没有用,先买了再说!

后面有了域名就想着做一个网站吧,然后就有了今天的博客(属于是为了一碟醋包一盘饺子了)。后来日积月累的写了些博文,不断的装修博客,越来越喜欢上这种感觉(不得不说 Stack主题颜值真的很不错的,越看越耐看,简约又美观)。幸好当时选的是Hugo的框架,没有像Hexo那样需要配置node环境,编译速度也是世界第一,给新人的我带来了不少便利。

然后腾讯云的套路真的很深:先是以低价引你上钩,等你到了第二年域名续费时,你面对的只能是高价的续费额(.love域名续费居然要180一年😭而.cn和.top域名才2,30一个月),所以这个域名基本上属于是一年制的了。续费时流泪就是当初选域名时脑子里进的水。

所以奉劝各位新手,选购域名时不要看首年价格,一定要看续费价格!最好就是选.com域名一步到位,没钱就.cn

申请 SSL 证书

这也是建站必不可少的一步了。以前都是Vercel帮我一键generate,而现在需要自己手动申请了。

申请SSL证书可谓历尽千辛万苦,一开始尝试的几种方式都比较麻烦,网上的教程就没有一个统一点的,不是这有问题就是那有问题,

最后搞得基本上也心态爆炸了😇下面说一下踩的坑

Cerbot

已经不被推荐的方式,刚装完package就没继续下去了

Acme.sh

🔗地址

说实话acme.sh是一个不错的自动续签SSL证书的方案,据了解这种方式可能是目前 Let’s Encrypt 免费证书客户端最简单、最智能的 shell 脚本,可以自动发布和续订 Let’s Encrypt 中的免费证书。那为什么我在部署时遇到了各种错误呢?😢

首先是默认证书。我们免费SSL一般都选的 Let’s Encrypt颁发证书,我在执行时遇到了一下错误

Please add '--debug' or '--log' to check more details.
See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh

上网查了一下,发现是acme.sh调整了默认证书let’s encrypt为zerossl导致的,lnmp 1.8的话暂时选择其他zerossl或buypass,1.8的修复版已经上传或者添加ssl证书前执行:

 acme.sh --set-default-ca --server letsencrypt 

这样设置let’s encrypt为默认ssl证书就可以了 参考链接:https://blog.csdn.net/qq_24504453/article/details/122878963

但是这远远没有结束,我是参考的这篇文章,基本上处处有错…也不知道是他的问题还是我的问题。无奈,只好另寻他法

image-20230722004555335

OHTTPS

ohttps.com提供了类似于acme.sh的功能,不过提供了友好的管理界面,可申请Let’s Encrypt免费通配符类型证书,还提供了证书吊销、到期前提醒、自动更新、自动部署功能。另外比acme.sh增加了一些非常实用的功能,主要包括可自动部署至阿里云、腾讯云、七牛云的负载均衡、内容分发CDN、SSL证书列表等,并可自动部署至多个nginx容器中。如果你有在证书更新后自动部署至多个不同节点的需求,使用ohttps.com就对了,在这里强烈推荐大家使用ohttps.com申请和管理Let’s Encrypt颁发的免费HTTPS证书。

上面那段话是我抄来的,但是问题不大,新手、纯小白、啥也不懂,选OHTTPS就对了,有图形话界面操作起来还是方便!

下面讲一下教程和注意点:

先注册一个帐号,这个应该不用多说了(可以使用GitHub帐号登录的,但是不知道抽什么风一直显示服务器错误)

image-20230722095341186

注册好之后登录,选择证书管理,创建证书

image-20230722095725009

选择泛域名,比较通用,域名的格式参考我写的

image-20230722095854825

接下来选择验证域名,这里就是一个很坑的地方

image-20230722095958032

注意,主机记录要把域名去掉!,实际上填的是_acme-challenge,要不然会没法验证成功的(真不知道官方文档为什么要这样误导人)

image-20230722100156729

到此,证书就已经申请完成了,下面部署一下节点

我使用的是腾讯云的SSL,如果你用的是腾讯云的轻量云服务器就按这个方法

这里的SecretIdSecretKey就按照官方的教程就行了,还是非常详细的。

image-20230722100424877

然后关联一下证书就行了

image-20230722100814527

接下来我们在腾讯云的SSL证书管理就能看到他刚刚提交的证书了

image-20230722100953052

再然后就是把它下载下来,传到服务器上

如果你有XShell之类的工具传文件就很方便,没有的话就用Gitee当中转站,拉一个仓库然放进去,服务器再git clone仓库

image-20230722101037714

我们最后实际要用的只有两个文件,分别是.crt和.key结尾的两个,中间那个不重要

image-20230722101335417

传好之后我们要把证书放到 /etc/nginx文件夹下,执行一下命令,注意一下你的证书原本位置,别光顾着抄代码

sudo cp ~/lovir.cn_bundle.crt /etc/nginx
sudo cp ~/lovir.cn.key /etc/nginx

nginx文件夹目录如下

image-20230721201435360

最后一步就是写nginx配置文件了,我已经帮你们写好了,直接复制代码然后用替换功能把lovir.cn换成你的域名就行(nginx配置文件不会写参考一下我的教程

server {
	listen	443 ssl;             # 端口
	server_name  lovir.cn;       # 域名
	ssl_certificate lovir.cn_bundle.crt;
	ssl_certificate_key lovir.cn.key;
	ssl_session_timeout 5m;
	#请按照以下协议配置
	ssl_protocols TLSv1.2 TLSv1.3; 
	#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
	ssl_prefer_server_ciphers on;
	
	location / {
		root  /home/lovir/Blog;         # 项目存放路径(注意权限)
		index  index.html index.htm;    # 默认首页
	}
}

http跳转https(可选配置,一般不用管)

server {
	listen 80;
	#请填写绑定证书的域名
	server_name lovir.cn; 
	#把http的域名请求转成https
	return 301 https://$host$request_uri; 
}

反向代理(把某一端口网页的代理到443端口并颁发SSL证书),我看别人的都是一大段,不知道我写的有没有问题(根据实测是可用的,性能咋样就不知道了✌️)

server {
	listen	443 ssl;                 # 端口
	server_name  music.lovir.cn;     # 域名
	ssl_certificate lovir.cn_bundle.crt;
	ssl_certificate_key lovir.cn.key;
	ssl_session_timeout 5m;
	ssl_protocols TLSv1.2 TLSv1.3; 
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
	ssl_prefer_server_ciphers on;
	
	location ~ / {
		proxy_pass http://127.0.0.1:8080;  # 源端口
		proxy_set_header Host $proxy_host; # 修改转发请求头,让8080端口的应用可以受到真实的请求
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}
}

至此就完成了SSL证书的颁发~基本上全是图形化界面,对小白来说就非常友好!

后期续签的OHTTPS会自动上传文件到我们的腾讯云帐号,再下载一下文件传到服务器上就行了。

至此,周记完结。

感谢屏幕前的你,愿意花上几分钟的时间来听我讲一些琐碎无聊的事.

Licensed under CC BY-NC-SA 4.0
最后更新于 2023 年 7 月 22 日