这里是某 铸币 作者 LXR 与陈年 bug 斗智斗勇的一条总结 绝对不是 BUG 忘记了之类的

# 故事开端

LXR 是在步入大学的第二年才开始配置自己的小博客的,俗话说的好, 故事的开始总是极具温柔 万事开头难,某人忙活了一个多月总算是给网站好了,不能说有多好,只能说是 光鲜亮丽 初具人型。

后来在后续进行了一系列 猛男 风格美化之后,网站中于是看起来丰富了许多,于是就陆陆续续的开始写一些小文章( 虽然没什么人看 )。

# 我们的初见

就在 LXR 初步完成博客的建设并开始兴奋的与大家互换友链的时候,LXR 发现了一个问题:

“为什么我的网址前面总是会提示不安全?”

刚开始因为课业不少 + 每天还有其他事情比如各种的培训、学习、活动 、打游戏 之类的事情,所以一直没时间管。于是一直安慰自己说:” 没事的只是一个角标,浏览的时候又看不见,眼不见心不烦 “。

等后来 LXR 没那么忙了之后,她越看越觉得这个 “不安全” 标识很刺眼 也是被某学姐吐槽说怎么你的博客还顶了个不安全标识,速速去修一下

于是 LXR 开始寻找问题的根本原因。

# 第一次着手解决

LXR 在越看越不顺眼的情况下,查阅了一些资料并在服务器控制台,发现可能是证书过期导致的 后来想了下最开始的时候他就存在的话,其实是跟证书过期没直接关系的,铸币 LXR ,于是她决定部署一下免费 SSL 证书(这东西一年 20 张,到期记得换就行)。

就当 LXR 按部就班的购买证书、配置并签发证书、下载证书之后,她发现了一个至关重要的问题:

“tnd 我证书存放路径我给设置哪去了?”

这里就不得不说一句 “铸币 LXR” 了。因为 LXR 最开始配置的时候是自己配置 中间卡住了就请教学姐版 的,所以有一些配置并没有沿用自带的默认配置,就导致 铸币 LXR 忘记了自己的 nginx 下存放 ssl 整数的路径是哪里,同时也没找到 nginx 配置文件放哪里了 因为 nginx 安装目录和可执行文件目录也是自定义的,全搞忘了 ,于是在经历了一系列找寻和尝试之后最后还是暂时搁置了 (确实是找了好久没找到 and 又忙起来了所以选择暂时搁置下来 攫夺不是因为 LXR 懒 )。

# 第二次见面并解决一部分

时光荏苒岁月如梭 总之就是 LXR 懒了很久之后 ,一眨眼 LXR 都毕业步入社会开始工作了。

在这段时间里,LXR 还是会陆陆续续的更新自己的小站(虽然后面开始更新美食食谱和经验分享了),让它看起来不会太冷清,但是那个 “不安全” 角标总是像一根刺一样时不时扎眼睛一下令人难受。

于是就在最近,LXR 没那么忙的时候就开始着手彻底解决这个问题。

第一步,当然就是换一个新的免费 SSL 证书了(当然不是 LXR 扣,有没有用得先试了才知道,不然不是白买了 当然修好了估计也不会买 )。于是在新一轮的购买证书、配置并签发证书、下载证书之后,她又回到了问题的起点:

“tnd 我证书存放路径在哪?上次就没找见。”

好在此时的 LXR 并不是最开始的菜鸟 LXR 了 虽然现在来说也没有强到哪里去 ,她使用了 which 命令来查找她想要的东西。

此时我们应该来了解一下 which 命令了:

# which 是什么

which 命令是 Linux 中的一项文件操作,用于定位系统中的可执行文件。

which 指令会在环境变量 PATH 设置的目录里查找符合条件的文件。

which 命令在所有主流的 Linux 发行版中都是可用的,并且在大多数系统中, which 命令都是预安装的,无需额外安装。

# which 命令的基本语法

which 命令的语法非常简单

1
which filename

这里的 filename 就是你要查找的文件名或命令名。

# 查找单个命令的位置

例如,你要查找 java 命令的位置,你将使用下面这段指令:

1
which java

输出可能是这样的:

1
/usr/bin/java

这告诉我们 java 命令的位置在 /usr/bin/java

# 查找多个命令的位置

1
which man java python nada

输出可能是这样的:

1
2
3
/usr/bin/man
/usr/bin/java
/usr/bin/python

这告诉我们 manjavapython 命令的位置,而 nada 命令没有找到

# which 命令的常用选项或参数说明

which 命令的语法格式如下:

1
which 参数 文件名

常用参数见下表:

选项 描述 选项 描述
-a 显示 PATH 变量中所有匹配的可执行文件 –help 显示帮助信息
-n 设置文件名长度(不含路径) –read-functions 从标准输入中读取 shell 函数定义
-p 设置文件名长度(含路径) –show-tilde 使用波浪线代替路径中的家目录
-V 显示版本信息 –skip-dot 跳过 PATH 变量中以点号开头的目录
-w 设置输出时栏位的宽度

例如,当我们要查找所有匹配的路径时,我们可以使用 -a 参数来进行查找:

1
which -a program

输出可能是这样的:

1
2
/usr/bin/program
/usr/local/bin/program

这表示 program 在这两个地方都有可执行文件。

# which 命令的注意事项

  • which 命令只适用于可执行文件。
  • 如果 which 命令在当前路径中找不到可执行文件,它将返回空。

# 第二次见面的最终处置

问题的处置还在继续。

在使用了 which 命令后,LXR 顺利找到了 nginx 的安装路径,并找到了 nginx 的证书配置文件,在这里找到了 SSL 证书的存放路径。

欣喜若狂的 LXR 通过 winSCP 将下载好的证书文件上传至服务器指定路径,修改配置文件并重启 nginx 服务后,她开始验证重新部署的证书是否有用。

当她使用浏览器打开本站时,她发现:

“tnd 怎么这个不安全标志还在?”

后面怀疑是浏览器缓存导致的问题,索性使用 InPrivate 无痕浏览来访问网站,果然发现了问题原因。

居然是因为网站不支持 HTTPS 访问导致的。

NoHTTPS

于是 LXR 开始着手调查此事。

# 解决不支持 HTTPS 的问题

。。。未完待续(实际上是还没写完,下班了回来写哇。