看前须知:问题解答
问题一:此教程麻不麻烦?
笔者自己搭建的时候遇到一些麻烦和疑惑,又不想下载一堆工具。
此教程只需要给自己的云服务器下载一个nginx即可。
(等会儿教你)
问题二:看这个教程我能学到什么?
只教你领取SSL证书的申请
和腾讯云云服务器的部署
由于笔者也是学生,能教给你的有限,请不要过度期待。
问题三:腾讯云官网有教程,看你这个干什么?
- 腾讯云官网有《Nginx服务器SSL证书安装部署》
地址为:cloud.tencent.com/document/pr…
个人感觉该教程不太适合小白,并且有些工具是不用下载的(主要是觉得麻烦……)
有参考网络文档,和腾讯云官方文档。
感觉太详细了显得很长,后续可能考虑出一个视频教程。
由于笔者也是学生,有不懂的地方、说错的地方、理解错的地方,欢迎评论区友好指正。
-本文写于2023/6/14
正文开始:
云服务器申请和手动部署SSL证书《保幼儿园级别姆教程》
笔者默认认为:来看此教程的朋友们
- 已经拥有一台服务器,
- 一个域名
笔者配置如下:
服务器:腾讯云——轻量应用级服务器
操作系统:ubuntu
域名:
hcai.top
申请SSL证书:免费版
证书类型:nginx证书
一、申请免费版SSL证书
通过网址 console.cloud.tencent.com/ssl 进入你的SSL证书后台
1. 进入之后,先点击我的证书
2. 点击免费证书
3. 申请免费证书
4. 再次点击申请免费证书
5. 按照提示填写, 域名验证方式
选择推荐的自动DNS验证,RSA算法
提交申请,`等待`腾讯云平台进行`同意`(大概十几分钟)
二、 已签发免费版证书
1. 十几分钟之后再次来到SSL证书后台
console.cloud.tencent.com/ssl 进入你的SSL证书后台
2. 此时你的状态已经更新为已签发(如果不是的话,就再等等。)
此时你有两种选择。
(本教程采用方法二)
- 一种是点击部署(你满足一定条件【这个本教程最后再说】,腾讯云会帮你自动部署)——自己看它的文档
- 第二种是点击下载,手动部署(本教程采用手动)
三、下载nginx证书
1. 点击下载(已签发旁边)
2. 选择Nginx,点击下载
3. 下载成功后,解压该文件
(如果没有解压软件的,推荐Bandzip (Bandzip官网网址为www.bandisoft.com/bandizip/)
4. 没有拉链就是解压成功了
5. 点开解压后的文件夹
(无拉链的)
此时有四个文件,分别为:
hcai.top_bundle.crt
证书文件
hcai.top_bundle.pem
证书文件(本次可忽略该文件)
hcai.top.key
私钥文件
hcai.top.csr
CSR 文件(本次可忽略该文件)
6. 我们需要以下两个文件。
.key ——你的私钥
.crt ——是你的公钥(即你的证书)
注意:
如果你的文件没有后缀名
,可以看下面那张图的最右边”类型“
,我们需要 ‘KEY文件’和’安全证书’
其余两个文件,此次部署用不上。
CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构的。安装时可忽略该文件。
7. 拿到密钥和安全证书
以上,我们已经拿到了密钥和安全证书,现在将要对自己的云服务器进行操作
。
四、连接远程云服务器
有两种方式进行操作:
1. 进入腾讯云官方的云服务器控制台(选择一种即可)
- 进入腾讯云云服务器的
控制台
,点击下图所示区域。
- 输入账号密码之后(我设置了免密登录,所以不展示登录这个步骤了),进入这个页面,就是成功进入后台了。
2. 使用本地终端连接远程服务器(选择一种即可)
步骤如下:
-
点击快捷键 Windows键+R
-
此时左下角出现如下窗口:
-
在输入框输入
cmd
,然后回车
-
此时你进入本地终端界面了,如下所示:
-
输入
ssh ubuntu@hcai.top
,然后回车。此时
ssh
是命令,ubuntu的操作系统默认用户名为ubuntu,如果不知道的,查询一下,或者重置账号密码。此处的
hcai.top
是填写你自己的域名
-
下图所示:标识①让你输入密码,密码就是你在腾讯云云服务器里设置的密码
在这边输密码是没有任何提示的,直接输入完密码,回车即可。
密码输对之后,你会看到②,和③的内容。
此时,你已经连接了你的远程云服务器
了,可以对它进行操作了。
到此,你已经连接上你的云服务器了,现在需要配置云服务器里的东西
。
五、在云服务器上配置和部署Nginx
1. 云服务器上下载nginx
你需要在云服务器上下载Nginx
(在此处的用处是帮助你将https密文转成http明文)
在③(上图,接着刚刚的步骤)里面输入sudo apt install nginx
然后回车
解释:其中
sudo
意思是:super user do
,就是给你的用户提权限,成为超级管理员用户,这样可以操作的权限更高,可以进行更多的操作。为什么需要提权限?——我们要使用
apt
命令,超级用户才可以使用该命令。
- apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。
- apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
- apt 命令执行需要超级管理员权限(root)。
-
我们输入了①,我这边已经安装了nginx2,所以它提示我②,如果你第一次安装,当出现③时,说明你已经安装成功了。
前提是:没有出现
error
之类的提示的话。
2. 上传本地文件到云服务器
然后我们需要把刚刚说的两个文件(hcai.top.key
和hcai.top_bundle.crt
),把它传到我们的云服务器里面。
先退出远程服务器
-
(或者你也可以选择
再开一个cmd终端
,两个是可以同时进行的,Linux支持多个用户同时操作) -
你也可以采用scp命令来在本机操作。
-
你还可以利用腾讯云官方文档的教程来使用云服务器控制台来上传(这边就不教你了)
先输入scp看看本机有没有该命令,出现如图所示就是有该命令。
先进入两个文件的文件夹下,我这边的路径是这个
cd C:\Users\24247\Downloads\hcai.top_nginx\hcai.top_nginx
不知道文件夹路径是什么的,点击一下红色区域,然后复制即可。
注意:
cd
是切换目录,与文件夹路径之间有一个空格。
我们已经进入该文件夹目录下了,下面是我输入的。你们不要跟我一样,先看完这几句话!!!!!
⚠你们输入的:
scp 你的域名.key ubuntu@你的域名:/etc/nginx
——该步骤是为了上传.key
的文件,由于我们只需要这个文件夹的其中两个文件,所以我们分两次上传。
如果觉得麻烦,就删除不要的另外两个文件,然后把整个文件夹里的文件上传也可以(命令自己查。)
注意 :
hai.top.key
是我要上传的文件,
ubuntu@hai.top
是我的用户名和域名
tmp
是我的云服务器里的临时文件夹
因为我已经把文件上传了,所以我没有上传到
/etc/nginx
目录下,而是上传到了/tmp/
所以图片显示和命令有一点点区别,大家理解即可。
下面上传另一个文件,和上面操作一样只需要改文件夹名字,不多赘述。
你执行的执行命令scp 你的域名_bunndle.crt ubuntu@你的域名:/etc/nginx
。
我执行的命令如下图所示。
非常棒!我们现在就差一点点步骤了。直接输入ssh ubuntu@hcai.top
连接远程服务器,输入密码。
进入后输入cd /ect/nginx
进入该目录,再输入ls
查看该目录下的文件。
如果你上传成功,就能够看到刚刚上传的两个文件名。
?发现cmd不能编辑nginx.conf文件,我们用powerShell…..沉默了,power shell也不行。行吧,那我们用腾讯云云服务器控制台。
3. 编辑nginx.conf文件
进入腾讯云云服务器后台:
上面有教,这边不多说了。看到这个页面
0. 输入cd /etc/nginx
- 输入
sudo vim nginx.conf
(我这边不用提权限也可以编辑,如果说权限不够,就在该句代码前面加sudo提权限,这里为了保险起见,添加了。)
进入nginx.conf文件后,这时候还不能编辑,先利用上下键找到下图该区域
(图片里绿色代码的下面)。
在该区域的后面
(看下面的图),先点击i
键,进入编辑模式,然后编辑以下内容:(还是不知道在哪里的,看代码块的下面那张图)
下面这段代码,腾讯云复制的,你按照这个来即可。
其中前三个按照你的域名来,我的域名是hcai.top,你更改一下即可。
最后一个的意思是,nginx请求转发给博客服务端(http://127.0.0.1:8082)
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name hcai.top;
#请填写证书文件的相对路径或绝对路径
ssl_certificate hcai.top_bundle.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key hcai.top.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 / {
#nginx请求转发给博客服务端(http://127.0.0.1:8082)
proxy_pass http://127.0.0.1:8082;
proxy_set_header Host $host;
}
}
麻了,掘金的nginx怎么没有高亮。大家先直接复制就行,丑就丑点吧。
粘贴好的代码如下:
其中,你需要更改的地方是按照你自己的域名把hcai.top的部分换掉
:
最后的①那一块儿,这边我用的端口号是8082。
我的云服务器这个端口号是没有用过的,大家选择自己没有用过的即可。有些端口号系统占用了,不要随便写。
编辑成功后
,点击esc键(键盘左上角)然后输入:wq
退出并且保存。
如果编辑错了
,可以选择esc键,:q!
不保存,直接退出。重新进入,再编辑一下。
此时输入sudo nginx
启动nginx。
你可能会启动失败
,因为nginx需要占用80端口和443端口,这边我的博客默认占用80端口
,我需要修改一下它。如果启动成功,请忽略该步骤。
启动失败
展示如下:(我这边是因为已经启动一个nginx了,显示端口被占用。你们按照步骤来,理论上来说是不会出现error的)
①输入screen -r blog
②报错了,出现这句话的原因就是因为你的用户权限不足。
③我们问问它,我们现在是什么用户 whoami
(我是谁?)
④他说 我们是lighthouse,该用户为普通用户。
下面修改一下:(这里的要输入)
①输入su ubuntu
(su
——提权限为超级用户ubuntu)
②输入密码
③whoami
——即who am I? 我是谁(可以看到,最前面的前缀从lighthouse变成了ubuntu)
④他说我是ubuntu,该用户为超级用户(不建议大家随便提权限,除必要情况下,其他时候要慎重。)
然后
①输入screen -list
(screen 终端复用工具)
②可以看到,有一个项目被接管了,该项目为.blog
结尾,blog是我配置博客的时候自己取的名字,这边你如果是别的名字,记得更改步骤③。
③screen -r 你配置的名字
这时候你进入了你的博客后台,界面大概如下,可以看到我用的是Hexo的Fluid主题。
点击ctrl+c,停止你的博客运行。
然后输入hexo s -p8082
hexo是我用了hexo的博客框架,用别的框架就是别的命令。
s是启动博客
-p8082是更改启动端口的参数
当看到如图所示红色区域改为8082端口,就是成功了。(我已经修改过了,所以一直是8082端口。)
退出博客后台, 不能用exit
(这样会直接关掉被接管的终端),所以我们这边用ctrl +a
一起按,松手,然后再按d
。
当回到下面这个页面就是成功了。
这时候再输入sudo nginx
即可启动成功。
此时,输入你的网址
hcai.top 有一把小锁,就是成功了。
即可!
想必大家也看到了,笔者出这个教程是觉得当时配置的时候,没有找到合适的教程
,官方文档有些注意事项是默认大家都会了的。所以出一个教程。
该教程写于2023/6/14
希望可以帮助大家。是有点啰嗦,给小白看的。
后续考虑出一个简易版和教学视频。
本人操作了两遍,看了很多次这个文档,不确定是否适合每一个人,把很多顾虑和注意事项都写了。不要嫌弃啰嗦…
如果有错误,请指出,笔者看到之后会积极改正。