为虚拟机中的静态网站加密

最近一直在学习Hugo,一个静态网站生成器,用他搭建了公司的业务手册,导出了HTML格式的网站,放在阿里云的虚拟主机上,觉得还是需要有一个访问限制,只让公司内部的人看,所以搜索了很多网页后,总结了一个如何加密静态网页文件的方法,主要用的是apache.htaccess文件,具体方法如下:

判断主机程序

虚拟主机有很多种,作者的方法目前只在阿里云的apache虚拟主机中试验成功,由于没有nginx的虚拟主机,暂未尝试,如果有试过的朋友,欢迎留言告知。

新建一个名为test.php的文件,上传至网站的根目录,一般是htdocswww,或是wwwroot

    <?php
        echo "Path: " . getcwd();
        echo "<br>";
        echo "Software: " . $_SERVER['SERVER_SOFTWARE'];
        phpinfo();

访问http://IP地址或绑定的域名/test.php后,返回的结果一般为:

    Path: /data/home/qxu11924/htdocs
    Software: Apache

其中Path代表了这个文件的绝对地址Software代表了WEB服务器使用的软件。

.htpasswd设置

为了确保安全,我们不应该使用明文密码,但是虚拟主机又没有ssh权限,这里我们可以利用一个名为 Htpasswd Generator – Create htpasswd 的网站进行生成。

Username中输入用户的登录名称(如“user”),并在Password中填写希望用户使用的密码(如“user123”)

htpasswd-generator-1

点击Create .htpasswd file生成字符串,会得到如下界面:

htpasswd-generator-2

新建一个名为.htpasswd的文件,将网页中的字符串 user:$apr1$APyghgLT$DiWsvwYNHrO1CGzrNeg5p/ 复制到文件内,保存。

.htaccess设置

新建一个名为.htaccess的文件,内容如下:

    AuthUserFile /data/home/qxu11924/htdocs/.htpasswd
    AuthType Basic
    AuthName "Restricted Area"
    Order Deny,Allow
    Deny from all
    Require valid-user
    Satisfy any

上面AuthUserFile的值代表密码文件存储的位置,也就是我们第一个步骤中Path后面的值,然后加上.htpasswd的文件名。

上传文件

将保存好的三个文件通过FTP软件上传至虚拟主机中需要加密的目录中,访问网站后会出现如下窗口:

登陆界面

输入密码后即可正常访问网站。

当然,这只是一种比较简单的加密方式,对于一些比较敏感的数据,还是推荐采用更高级的加密,或者尝试CMS软件来搭建。

One thought on “为虚拟机中的静态网站加密

发表评论

电子邮件地址不会被公开。 必填项已用*标注