http升级https全流程(踩坑指南

2024-3-18|2024-3-18
Anthony
Anthony
type
status
date
slug
summary
tags
category
icon
password
好久好久好久没写文了啊🤐,语言组织都不利索了

场景

今天负责将自己做的项目从http升级到https,原因是写的软件从我的网页上下载天天被谷歌说有毒😅😅。先来说说基本的技术背景:
  1. 阿里云ECS建站,OSS文件系统,启用CDN加速传输
  1. 网站已经备案,但没有SSL证书
  1. 后端用的docker compose, nginx做转发
所以我们需要做的就是:
  1. 搞个证书(最好不要钱)
  1. 然后部署到服务器上去(烦得要死)
  1. 最后还要调试oss和cdn
其实网上一大堆教程了,但我觉得我就是做到一个事无巨细吧,网上很多东西都不讲原因,有些坑也没有说(踩死我了)

SSL证书

购买

首先打开高端的阿里云数字证书管理服务控制台,来白嫖一个证书
notion image
notion image

创建

点击创建证书
notion image
填写你的域名,其他如图就可以了
notion image
接下来就是信息验证,首先要在阿里云的DNS添加验证记录,按照图里的走就是了
notion image
添加记录
注意主机记录一定是_dnsauth,记录值就是刚刚申请时候那一长串的东西
notion image
如果DNS信息验证正确的话就ok了,等个10分钟签发 ☕

服务器配置

貌似阿里云是有自动部署的选项的,但我感觉自动部署其实也要配一些东西,还不如亲自来,理解得透彻

证书下载

回到证书控制台,点击下载
notion image
我的是nginx就选择nginx
notion image
下载完之后会得到一个压缩包,里面就是域名.pem 和 域名.key
然后直接scp到服务器上。

文件要放到服务器的哪

先来看看我的服务器文件结构,mariadb,minio,nginx,tooth都是我放docker服务的位置(不是说docker在这里运行,而是docker的原始东西在这里)
notion image
然后看我的docker-compose.yaml。
ports的意思就是发到服务器的xx端口要转成docker的xx端口,所以就是80转80,443转443(443一般就是用来做https)
volumes就相当于是docker的-v命令,也就是说服务器上的xx目录,应该会放到docker容器的xx目录上(理解这个很重要!)在我这里就是服务器的nginx目录会转为docker的/etc/nginx目录。(就是说东西直接搬过去)
ps:当时理解这个volums真的费了好大劲QAQ
所以我选择在服务器的nginx目录下新建一个ssl夹子(这样我就知道这是干嘛的了)然后把key和pem放进去
notion image

配置nginx.conf

尤其注意的就是certificate的位置,一定从容器的根目录开始

重启docker

docker compose restart重启一下服务
然后 docker logs nginx -f --tail=50查看前50个logs和监听,方便debug

配置阿里云

OSS

因为是公有文件,所以在oss中开启https
notion image

CDN

去CDN控制台,开https证书,一定要开!!因为oss配置了cdn加速
notion image
 
然后就大功告成啦,再也不报毒了哈哈哈哈哈哈
Unity自定义单选按钮组Java Socket踩坑