当前位置:首页 > 常见问题 > 正文

国外虚拟主机申请 虚拟主机定义

国外虚拟主机申请 虚拟主机定义  第1张

网管小贾的博客 / www.sysadm.cc

在前一篇文章中,国外虚拟主机申请我给小伙伴们介绍了 OpenLiteSpeed (以下简称 OLS ) 的基础安装以及使用方法,简单易上手,基本上不用手动编辑配置文件。

参考文章国外虚拟主机申请:《用 Laravel 吗,从 Nginx 切换到 OpenLiteSpeed 的那种》

链接:https://www.sysadm.cc/index.php/webxuexi/810-give-up-nginx-then-using-laravel-with-openlitespeed

看过之前的这篇文章,就算是小白也可以轻松入门(我就是这么入门的)。

不过文章最后我们留了一个扣,就是如何才能让 OLS 支持 SSL 的问题,现在还果奔 http 的应该不多见了吧?

网络传输涉及到安全问题,所以现在绝大部分网站的网址都冠以 https

有了 https 加持,你就会看到网址前多了一把小锁,也就说明连接是安全的。

OLS 官网的知识库中的确有相关设置 SSL 的内容,但似乎又太过于简略,需要重点说明的却一笔带过。

官网知识库链接:https://openlitespeed.org/kb/ssl-setup/

本着为人民服务的宗旨,发挥一不怕死、二不怕苦的老一辈的奋斗精神,我按照知识库文章中的介绍,初步实现了在监听器上支持 SSL 的目标。

这里事先说明一下,因为像 Let's Encrypt 之类的互联网证书如何设定的教程网上有大把,所以本文仅仅拿如何导入自签名证书来做演示。

只不过之后在虚拟主机的设定上又遇到了一个坑,浪费了不少时间。

具体是什么坑呢,请听我慢慢道来。

一、安装 OpenSSL工具

工欲善其事,必先利其器。

生成我们所需的密钥和证书文件,通常会用到 OpenSSL 这款神器。

在这儿我准备给小伙伴们介绍一下 OpenSSL for Windows 。

手头上没有 Linux 的小伙伴们不用急,这个是可以在 Windows 下使用的哦!

OpenSSL 是在 Linux 下经常被使用的常用于通讯加密的开源加密软件,但早先在 Windows 下好像并没有它的身影。

还好总有些爱好者,他们组织在一起开发了 OpenSSL for Windows ,终于在 Windows 下我们也可以用上 OpenSSL 了。

不过吧其网站有点怪怪的,不知道为啥它并不是 https 开头的。

产品链接页面:http://slproweb.com/products/Win32OpenSSL.html

打开产品链接,你可以找到最新版本的 OpenSSL for Windows 下载,分为轻量版和32/64位版。

国外虚拟主机申请 虚拟主机定义  第2张

一般轻量版的就够用了,我选择了最靠前的一个。

备用下载:Win64OpenSSL_Light-1_1_1j.exe (3.54M)

下载链接:https://www.90pan.com/b2354310

提取码:<链接失效,如需要请留言>

下载完成后开始安装,最初它会提示你系统中没有安装 Microsoft Visual C++ 2017 Redistributables 。

国外虚拟主机申请 虚拟主机定义  第3张

如果你点是,它会帮你下载,但只有上帝才知道它什么时候能下载完,微软的速度你懂的。

所以我找到了以前安装 WampServer 时用到的组件包,其中就有这个版本的组件。

当然,OpenSSL 是64位的自然所需64位的组件,不过我这32位的也有,就打包放一起吧。

备用下载:Visual C++ Redistributable Packages for Visual Studio 2017.7z (19.6M)

下载链接:https://www.90pan.com/b2354295

提取码:<链接失效,如需要请留言>

国外虚拟主机申请 虚拟主机定义  第4张

装完组件,继续安装 OpenSSL for Windows 。

国外虚拟主机申请 虚拟主机定义  第5张

中间有询问你将动态链接库放在哪儿合适的提问,你要是无所谓那就默认放在 Windows 系统文件夹中,要是有强迫症,那就选择和执行文件放一起,其实都可以正常使用。

国外虚拟主机申请 虚拟主机定义  第6张

正像安装进程最后那幅画面提示的那样,爱好者组织看上去非常渴望被捐助。

国外虚拟主机申请 虚拟主机定义  第7张

这也可以从前面那张协议窗口的文本中窥见一斑,爱好者组织对白嫖者虽说不上痛恨,但却抱着嗤之以鼻的态度。

在此也顺便呼吁一下小伙伴们,如果你的确从中受益,即便不予以金钱,但也请表达一下你的支持,比如关注、点赞、分享、外加在看,顺手也关注一把@网管小贾,哈哈。

好了,我们完成安装后,建议大家最好将 OpenSSL 的执行目录加到系统路径中。

这样我们就可以开始创建 SSL 证书了。

国外虚拟主机申请 虚拟主机定义  第8张

二、生成用于 HTTPS的密钥和证书文件

此处用最最最简单的方法来实现,一共三步三条命令来生成自签名证书。

为了便于今后整理和识别,我们以域名为文件名来区分不同的主机。

比如域名为 sysadm.local,则可以按以下方式生成私钥和证书。

1、生成私钥文件,以 key为后缀。# openssl genrsa -out sysadm.local.key 2048

国外虚拟主机申请 虚拟主机定义  第9张

2、以密钥为基础,生成证书请求,以 csr为后缀。# openssl req -new -key sysadm.local.key -out sysadm.local.csr

命令执行后的交互内容其实可以任意填写,但有一个地方必须要填写正确,那就是通用名称,一般来讲应该是主机的域名。

国外虚拟主机申请 虚拟主机定义  第10张

3、有私钥,有请求,那么就可以据此生成相应的证书了,以 crt为后缀。# openssl x509 -req -days 3650 -in sysadm.local.csr -signkey sysadm.local.key -out sysadm.local.crt

国外虚拟主机申请 虚拟主机定义  第11张

好了,一共生成三个文件,除了请求文件是用于生成证书的过渡文件外,其他两个文件等会儿就要用到了。

sysadm.local.key 私钥(备用)sysadm.local.csr 请求(不用)sysadm.local.crt 证书(备用)

三、给监听器设定证书,开启 SSL

找到监听器,在列表中点击监听器名称。

国外虚拟主机申请 虚拟主机定义  第12张

点击右侧编辑按钮,将端口修改成 443 ,加密连接修改成 是 。

国外虚拟主机申请 虚拟主机定义  第13张

在 SSL 选项卡中指定私钥和证书路径。

国外虚拟主机申请 虚拟主机定义  第14张

四、映射虚拟主机并测试效果

我们假定这里有两台虚拟主机,并分别对应两个不同的域名。

至于如何建立虚拟主机,小伙伴们可以参考之前我写的文章。

一号虚拟主机:www1.sysadm.local二号虚拟主机:www2.sysadm.local

国外虚拟主机申请 虚拟主机定义  第15张

新建好虚拟主机并映射到监听器后,我们就可以开始测试前面设定 SSL 的效果了。

打开浏览器(比如我这用的火狐),输入虚拟主机域名访问,比如:

https://www1.sysadm.local

可以看到网站的确可以访问,只不过那把小锁带了个感叹号。

其实正是由于我们使用的是自签名证书,所以才会有感叹号提示,不过并不影响实际使用。

国外虚拟主机申请 虚拟主机定义  第16张

点击图中那个不安全连接右边的箭头来查看详细情况,可以看到证书的验证者是 SYSADM.CC 。

一切好像都挺顺利哈,不过当你打开第二个虚拟主机站点时,你会发现它的证书信息中的验证者也同样是 SYSADM.CC 。

国外虚拟主机申请 虚拟主机定义  第17张

这两个站点的信息都一样,都是由同一个 SSL 证书提供的加密保护,这有什么好奇怪的吗?

这种情况的确是由于 SSL 证书设定在监听器级别上,所以多个虚拟主机可共用一个证书。

但是,小伙伴们有没有想过,如果是多个虚拟主机,并且它们分别属于不同的组织、不同的站长或不同的域名,那么有可能使用不同的证书吗?

答案是,当然有可能,要不天底下就一个证书,大家都来用不就乱套了。

可是根据 OLS 官网知识库的说明内容,我却无法正常实现以虚拟主机为单位分别给其设定 SSL 证书。

怎么回事?原来这里有个坑!

五、设定虚拟主机级别的 SSL证书

我删除了监听器上的证书路径,并按官网说明在虚拟主机的 SSL 选项卡上指定了证书路径。

但是被现实结果啪啪打脸,无论我怎么刷新都无法正常加载网页。

国外虚拟主机申请 虚拟主机定义  第18张

调试了N个小时,愣是找不着北,什么鬼,到底问题出在哪儿了呢?

遇事不决问网络,我搜!

没成想就在 OLS 的官方论坛里找到了版主这么一段奇妙的文字。

国外虚拟主机申请 虚拟主机定义  第19张

试着将鸟语翻译过来,大概是这么个意思。

意思是你得先在监听器那儿设定好证书,然后再在虚拟主机上设定证书。

由于虚拟主机级别设定会覆盖监听器级别的设定,之后访问具体站点时,它会自动跳过监听器证书而读取虚拟主机证书。

哦?真的是这样吗?

我按前面介绍的生成证书的步骤,分别为两台虚拟主机生成了各自的私钥和证书文件。

其中,三个步骤中的第二步,我特意将组织名称区分开来。

www1.sysadm.local 对应 AAAAAAAAwww2.sysadm.local 对应 BBBBBBBB

国外虚拟主机申请 虚拟主机定义  第20张

国外虚拟主机申请 虚拟主机定义  第21张

然后,注意这里是重点。

首先,将监听器设定好主证书,其实就是按一开始前面所说的做,确保监听器级别下可以通过 HTTPS 访问。

其次,再到各个虚拟主机的 SSL 选项卡中设定各自的子证书。

这些虚拟主机级别的子证书的制作方法和前面的都是一样的,就是那三个步骤,只是为了各自区分,注意域名填写就行了。

国外虚拟主机申请 虚拟主机定义  第22张

国外虚拟主机申请 虚拟主机定义  第23张

OK,全部设定好后别忘记平滑重启。

再来检查一下两个站点的证书信息,这回终于各归各家了。

国外虚拟主机申请 虚拟主机定义  第24张

最后总结

最终我是花了大概两天时间,初步将 OLS 加装了自签名证书,实现了 SSL 加密通讯访问的效果。

使用自签名证书虽然会有警告提示,但通常在局域网内部使用问题不大,有时也用于测试环境,最最重要的是,它不要钱啊。

另外,还在依赖 Windows 下的诸如 WAMP 之类的集成环境的小伙伴们,OLS 作为 WEB 测试环境中的一个比较好的选择,如果你也使用 Linux 那么完全可以考虑上手。

毕竟像 Laravel 之类的框架官方是不太建议在 Windows 下调试开发的。

说到调试开发,那么多的 PHP 版本可以同时工作、来回切换吗?

有机会的话,我会再探究一下 OLS 的 PHP 多版本的安装与切换。

最后的最后,希望小伙伴们表达一下爱心,关注@网管小贾,给走一波点赞、分享和在看吧!

感谢你们哦!

网管小贾 / sysadm.cc

发表评论

取消
扫码支持 支付码