Hello 各位好,我是小豪。连续两年差不多这个时候,都会收到腾讯云☁️发来的一封邮件,告知我博客所用的 SSL 证书快到期了,让我提前续期证书,或是重新申请证书,以免影响到我的业务。说影响到我的业务,其实也没那么夸张,毕竟我的博客没法赚钱,反而还要倒贴钱——每年租用服务器的费用、每个月的图床支出……对不能通过博客赚到钱的人来说,搭建博客反而是一种负担。SSL 证书过期带来的直接影响,就是当有人打开网站时,浏览器会出现类似下图的提示,且网友不能看到网站的内容,必须得点击左下角的「高级」,再点击弹出的「继续访问」,才能访问网站。因为增加了这一步操作,且考虑到不少人一看到这个风险提示就会下意识地关掉网页,因此对于业务性质的网站,SSL 证书过期会导致网站的 UV 极速下滑。前面的铺垫简单解释了 SSL 证书的作用,接下来就以我的 Hexo 博客,说下更换 SSL 证书的步骤:
在腾讯云后台免费申请 SSL 证书
我的 Hexo 博客用的是腾讯云的服务器,因此这里需要去到腾讯云服务器的后台,其他云服务厂商的操作应该也是类似的。打开腾讯云官网,点击顶部导航栏「产品」,在下方的搜索框输入 SSL,点击下方返回的 SSL 证书。点击下方的「产品控制台」,进入 SSL 证书管理后台。如果你和我的情况一样,之前申请的 SSL 证书快到期了,后台会有一个「快速续期」的选项,点击进入新的页面。打开的页面会让我们选择 SSL 证书的签发机构,这里我选择的是免费证书,签发机构也只有一家——亚洲诚信。如果是首次申请 SSL 证书,需要填入「证书绑定域名」,域名验证方式选择「自动DNS验证」即可,输入你的邮箱,最后点击下方的「提交」按钮。稍等一小会,没有遇到其他问题的话,它很快就会通过我们的申请。SSL 证书审核通过后,点击腾讯云右上角的「站内信」,打开腾讯云给我们发的邮件,如下图,点击下方的蓝色按钮,前往证书管理控制台。在打开的页面,找到下图的「手动部署」,点击蓝色的超链接,下载证书文件。在 SSL 证书的下载页面,还需要根据服务器(后端服务)使用的语言,来选择要下载的文件。这里就要根据自己博客的具体情况来选啦,我的 Hexo 博客服务器端使用的是 Nginx,因此这里就点击 Nginx 右侧的「下载」按钮。下载下来会得到一个安装包,解压安装包,里面会有 4 个文件,但其实我们只需要用到其中的 2 个文件,分别是以 .crt
和 .key
为后缀的文件。
上传 SSL 证书前的准备
这一步有一点点麻烦,我在折腾的过程中也是卡在这一步了。
要将电脑本地的 SSL 证书文件上传到远端服务器,有多种方式,稍微硬核一点的方法是通过电脑的终端上传,但因为我不习惯使用命令行,而且缺少了图形化的界面,这会让我操作起来有点不踏实,生怕把原本正常的东西搞砸了🤦♂️因此,这里我用的是一个叫 Royal TSX 的工具,我有点难说清这是一款什么样的软件,因此这个任务交给 Notion AI 来解释:
Royal TSX 是一款跨平台的远程桌面管理软件,支持 macOS、Windows、iOS 和 Android 系统。它可以管理多种远程桌面协议,包括 Microsoft Remote Desktop Protocol (RDP)、Apple Remote Desktop (ARD)、VNC、SSH 和 Telnet 等。 通过 Royal TSX,用户可以轻松地连接和管理多个远程计算机和服务器,以及执行各种远程管理任务和操作,如文件传输、终端访问、进程管理和脚本执行等。
Royal TSX 官网下载:
https://royalapps.com/ts/mac/download简单来讲,这里会用到 Royal TSX 的 SSH 连接和文件传输(SFTP 连接)功能,将我们的电脑和远端的服务器连接起来,同时软件提供了图形化的界面,只要简单拖拽就能实现文件的上传和下载,更适合于没有计算机背景的人。首次打开 Royal TSX,首页显示的 Getting started 给我们提供了使用软件的引导:
- 安装插件
- 创建一个文档
- 添加你的第一个连接
前面 Notion AI 在介绍 Royal TSX 时,说它可以管理多种远程桌面协议,软件能够支持多种协议,实际上是通过安装插件来实现的,要用到哪种协议,就给软件安装相对应的插件。下面以 macOS 版本的 Royal TSX 为例,点击屏幕左上角的 Royal TSX,选择 Plugins。点击插件面板上方的 Available Plugins,找到下面两个插件——Terminal 和 File Transfer,依次点击插件右侧的 Install 按钮,安装这两个插件。安装插件之后,软件会提示重启软件,按照提示重启即可。
SSH 连接
点击左上角的 File 选项卡,选择 New Document,新建一个文档,接着按下 Command + S,会弹出一个保存的窗口,可设置文档的名称,你可以自定义文档名称,也可以保持默认的文档名 Connections。单击选中刚创建的文档 Connections,点击左下角的加号 + ,在弹出的面板,选择 Terminal,打开一个终端。右击刚创建的 Terminal,选择 Properties,打开属性面板。打开的属性面板如下,要填入一些信息:
- Display Name:可以给终端起个有辨识度的名字,方便与等下要添加的「文件传输」区分开来
- Connection Type:连接类型选择 SSH 连接,后面的 Port 为端口,保持默认的 22 即可
- Computer Name:这里需要输入服务器的公网 IP,这个可以从腾讯云服务器的管理后台查到🔍
接着将左侧切换到 Credentials 选项卡,这里同样要更改一下默认的配置:将右侧的下拉选项更改为下图中的 Specify username and password,选择这个之后,还要在下方填入服务器的用户名和密码。服务器的用户名默认为 root,如果你没改过的话,填入 root 即可,接着再输入服务器的登录密码,如果不慎忘记了登录密码,可以到腾讯云管理后台重置密码。最后点击右下角的 Apply & Close,应用当前的设置,同时关闭设置面板。
SFTP 连接
再次选中文档 Connections,点击左下角的加号 + ,在弹出的面板,选择 File Transfer,添加文件传输。和前面配置 SSH 连接一样,选中刚添加的 File Transfer 并右击,选择 Properties,打开属性面板。
- Connection Type:连接类型选择 SFTP,端口为 22
- Computer Name:同样是输入服务器的公网 IP
接下来的这一步就是我在折腾的时候卡住的地方,不确定其他人到这一步会不会也会被卡住,仅作为提示。
将左侧切换到 Credentials 选项卡,你可以像前面一样,通过用户名和密码实现 SFTP 连接。在上面的设置面板填入用户名和密码时,它并不会立即进行校验,而是当我们右击刚添加的「文件传输」,选择 Connect 时,它才会对我们填入的服务器用户名和密码进行校验。在 SFTP 校验这一步,Royal TSX 给我弹出了一个错误的提示,说我输入的服务器用户名或密码有误……无法连接到远程的服务器。
如果你没有遇到这个错误提示,那下面的解决方法的部分可以直接跳过。
尝试了好几次,而且是在一位博主「老郭种树」发布的视频《【补充】Royal TSX SSH 密钥文件登录远程服务器》的帮助下,我才找到了另一种解决方法。除了通过用户名和密码,其实我们还可以通过密钥文件登录/连接到远程的服务器。关于如何生成密钥文件,操作比较复杂,可以参考上面提到的视频。
在本地生成密钥文件,同时将公钥和私钥上传到服务器的 .ssh
路径后,我们再次打开「文件传输」的属性面板,切换到 Credentials 选项卡。点击 Private Key File,切换到使用密钥文件登录的方式:将电脑本地路径 user/用户名/.ssh
下的私钥文件 id_rsa
拖拽添加到下方的 Private Key File 中,同时在下方输入生成密钥文件时所用的密码,这样就完成了密钥文件登录方式的配置。关闭设置面板,再次右击「文件传输」,选择 Connect,操作无误的话,这回就能正常连接到远端的服务器了。
将 SSL 证书文件上传到远端服务器
完成 Royal TSX 的配置之后,接下来就是借助 Royal TSX,将本地的 SSL 证书文件上传到远端的服务器。前面我们右击「文件传输」,选择 Connect 之后,会打开下图的界面,左侧是电脑本地的文件,右侧是远端服务上存放的文件。在右侧的服务器根路径下,新建一个名为 ssl 的文件夹,进入文件夹,再创建一个名为 Nginx 的子文件夹。打开 Nginx 文件夹,将本地的 2 个证书文件拖拽上传到文件夹中。
注:这里我对上传后的两个文件进行了重命名。
选中 Royal TSX 左侧的 Terminal(这里我将它重命名为「远程服务器」),选择 Connect,打开一个黑乎乎的窗口。在窗口中依次输入如下命令:
cd ssl/Nginx chmod 755 penghh.crtchmod 755 penghh.key cd ../.. nginx -s reload
第 1 行命令,是进入到我们刚创建的 Nginx 文件夹中;第 2、3 行命令,是将我们刚上传的两个 SSL 文件的权限提升到 755; 第 4 行命令,是从 Nginx 文件夹返回到服务器的根路径下; 第 5 行命令是重启服务。
完成以上操作后,就算是大工告成了。此时去到浏览器,打开个人博客或网站,点击浏览器地址栏的小锁,按照下面的步骤,查看证书的截止日期,如果时长为一年,那就是换上了新的 SSL 证书啦!对不懂技术的人,折腾起来还是有点麻烦的,但最后决定把操作过程写出来,以后跟着这个操作,心里就有谱了。好了,以上就是今天想分享的内容,希望对你有帮助。