前言
安全套接字层超文本传输协议HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道。HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。
SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。
我们需要搭建 HTTPS 网站,只需要加入SSL即可,而 mod_ssl
是一种以 openssl
的工具箱为基础专门为 apache webserver
提供密码保护的软件,也就是我们只需下载它即可
接下来呢,我们搭建一个基于 https://www.zuoye.com:11111
访问的 Web 网站,网站首页在 /www/zuoye/
,该网站的内容为 zuoye
,可以根据 https://www.zuoye.com:11111/mimi
访问到的信息为 mimi
,该网站的实际内容在 /var/www/secret
,该网站只有用户 student 能看。
前置技能
要搭建这样一个网站,我们需要会搭建 HTTPS 网站,会创建虚拟目录,会控制用户访问
搭建HTTPS网站
下载:yum install mod_ssl -y
我们可以看一下它产生了那些文件:rpm -ql mod_ssl
可以看出,/etc/httpd/
下即为配置文件
我们到 /etc/pki/tls/certs/
目录下来生成一个自签名证书
在 7 一下版本可以直接 make
一个证书,但是在高版本里只能先生成 .key
私钥,再自签名
生成私钥:openssl genrsa -out https.key
签名:openssl req -key https.key -x509 -out https.crt
这之后要输入国家代码(86)、省名(Shaanxi)、城市名称(Xi’an)、公司名称(chi)、单位名称(cc)、服务器名(www.chi.com)、邮箱(root@chi.com)
下来再编辑一个配置文件:vim /etc/httpd/conf.d/https.conf
重启服务:systemctl restart httpd
创建网页目录:mkdir -p /var/www/https
,并写入文件
用命令行访问该网站:curl https://192.168.32.128 -k
(-k
来跳过证书验证,因为这是我们自签名的证书)
用 Windows 来访问(如果有其他提示请点继续访问)
虚拟目录
虚拟目录顾名思义,URL中域名后的目录并不真实存在于根目录下,这就叫虚拟目录。
其实虚拟目录可以理解为目录的别名。
编写配置文件:vim /etc/httpd/conf.d/https.conf
重启服务:systemctl restart httpd
访问
基于用户控制访问
用户控制访问就是由我们来指定哪些用户可以访问
现在,创建一个目录:mkdir -p /var/www/user
添加一个 IP :nmcli connection modify ens33 +ipv4.addresses 192.168.32.10/24
编辑配置文件:vim /etc/httpd/conf.d/user.conf
(Require user
中的 user 请勿大写)
添加用户密码:htpasswd -c /var/passwd user1
添加用户2的密码(-c
表示新建):htpasswd /var/passwd user2
访问
输入正确密码,即可访问成功
最终网站的搭建
编写配置文件:vim /etc/httpd/conf.d/zuoye.conf
写入密码:htpasswd -c /usr/local/passwd student
创建相关页面
重启服务:systemctl restart httpd
在配置文件里写入域名解析
访问
访问mimi