# 安装apache2 第一步:apt install apache2 apache2-doc 第二步:systemctl status apache2 第三步:ss ‐ntupl |grep apache # 测试 ##### 桌面测试 ``` 第一步:桌面测试 第二步:http://localhost ``` ##### 命令行测试 ``` 第一步:curl http://192.168.10.1 ``` ##### 旁批 ```` 使用域名来访问 因为网站通常都是通过域名来访问的,而不是IP,所以在实验过程中我们可以配置DNS服务器来配合httpd服务器的实现。 而在生产环境通常域名解析的工作由域名提供商(或者DNS服务商)来提供解析的功能,一般情况下不需要自行搭建DNS,只需要把你所购买的域名解析到你的apache服务器所在的服务器IP地址(公网)即可。 另外,在实验环境里面,如果只是测试apache, 其实不需要搭建DNS那么复杂,要实现域名到IP的解析访问,用客户端系统/etc/hosts文件即可。 ```` # 修改web的默认主页 ##### 网页默认路径 ``` /var/www/html ``` ``` 第一步:cd /var/www/html 第二步:cp -a index.html index.html.back ``` # 无法安装apache2 ``` apt-get remove --purge apache2 #删除安装包和配置文件 apt-get remove --purge apache2-bin #删除安装包和配置文件 ``` # 使用https连接访问 #### 使用自带系统签名的key和crt ``` 第一步:a2enmod ssl #启用ssl模块 第二步:cd /etc/apache2/mods-enabled #进入路径 第三步:a2ensit default-ssl.conf #开启ssl模块 第四步:systemctl restart apache2 #重启服务 ``` ##### 测试 ``` 第一步:vim /etc/resolv.conf #打开配置文件 nameserver 192.168.10.1 #此处IP地址为本机IP ``` ##### 切换到虚拟桌面 ![浏览器访问][1] #### 自签SSL证书 ``` 第一步:apt install apache2 #安装服务 第二步:mkdir /etc/apache2/ssl #创建目录 第三步:cd /etc/apache2/ssl #进入目录 第四步:openssl req -new -x509 -nodes -out 1.crt -keyout 1.key #生成key和crt在当前目录下 ----- Country Name (2 letter code) [AU]:CN #国家 State or Province Name (full name) [Some-State]: #省 Locality Name (eg, city) []: #城市 Organization Name (eg, company) [Internet Widgits Pty Ltd]:ss #代号 Organizational Unit Name (eg, section) []:best #名称 Common Name (e.g. server FQDN or YOUR name) []:www.caoyi.com #域名 Email Address []:123456@163.com #邮箱 第四步:vim ../sites-available/default-ssl.conf #SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem } #SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key }将两行复制并注释 SSLCertificateFile /etc/apache2/ssl/1.crt }将crt和key文件绝对路径写入 SSLCertificateKeyFile /etc/apache2/ssl/1.key } 保存并退出 第五步:a2enmod ssl #启用ssl模块 第六步:cd /etc/apache2/mods-enabled #进入路径 第七步:a2ensit default-ssl.conf #开启ssl模块 第八步:systemctl restart apache2 #重启服务 ``` ##### 自签CA证书: --- ##### CA服务器: ```` 第一步:cd /root/ #进入目录 第二步:/usr/lib/ssl/misc/CA.pl -newca #执行脚本生成CA证书 第三步:mv 1.csr newreq.pem #重命名、1.csr是由apache2服务器第五步发送过来 第四步:/usr/lib/ssl/misc/CA.pl -sign #将CA证书和密钥匹配合成。生成newcert.pem 第五步:scp newcert.pem apache2服务器IP:/etc/apache2/ssl/1.crt #将newcert.pem发送apache2服务器 ```` ##### apache2服务器 ``` apt install apache2 #安装服务 第一步:mkdir /etc/apache2/ssl #创建ssl目录 第二步:cd /etc/apache2/ssl #进入ssl目录 第三步:openssl genrsa -out 1.key 2048 #生成1.key 第四步:openssl req -new -key 1.key -out 1.csr #生成1.csr 第五步:scp 1.csr CA服务器IP:/root #将1.csr发送给CA服务器 第六步:cd /etc/apache2 #进入apache2目录 第七步:vim /sites-enabled/default-ssl.conf #打开默认ssl配置文件 SSLCertificateFile /etc/apache2/ssl/1.crt } SSLCertificateKeyFile /etc/apache2/ssl/1.key }#更改路径 第八步:a2enmod ssl #启用ssl模块 第九步:cd /etc/apache2/mods-enabled #进入路径 第十步:a2ensit default-ssl.conf #开启ssl模块 第十一步:systemctl restart apache2 #重启服务 ``` # 测试 ##### CA服务器 ``` 第一步:cd demoCA #进入文件夹 第二步:scp scp cacert.pem 192.168.10.2:/home/demo #发送给apache2服务器的普通用户的家目录 ``` ##### apache2服务器 ``` 第一步:切换到虚拟桌面 第二步:打开浏览器 ``` ![浏览器设置][2] ![浏览器设置2][3] ![浏览器设置3][4] ![浏览器设置4][5] ![浏览器设置5][6] ![浏览器设置6][7] # 域名虚拟主机 ##### 实验环境说明 ``` 本服务器安装了 bind9 提供两个域名 www.yu.com www.yus.com 000-default.conf 域名为www.yu.com 001.yu.conf 域名为www.yus.com ``` ``` apt install apache2 #安装服务 第一步:cd /etc/apache2/sites-available #进入此目录 第二步:cp 000-default.conf 001.yu.conf #复制域名虚拟机 第三步:vim 001.yu.conf #进入域名虚拟机 第四步: Servername www.yus.com #开启注释,修改成自己的域名 DocumentRoot /srv/www/yus/ #修改域名的家目录 第五步:vim /etc/apache2/apache2.conf #进入apache2配置文件 Options FollowSymlinks AllowOverride None Require all granted #找到/处将所有域名虚拟机放行通过 第六步:a2ensite 001.yu.conf #开启自启模式 第七步:systemctl restart apache2 #重启服务 ``` # CGI:将代码隐藏,只能看到效果 ``` 第一步:a2enmod cgi cgid #开启模块 第二步:cd /usr/lib/cgi-bin #进入目录 第三步:vim time.sh #创建文件并打开编写脚本 #!/bin/bash echo "Content-type: text/html" echo "" /bin/cat < System time

EOF3 /bin/date "+%Y/%m/%d %T %u" /bin/cat < EOF4 第四步: chmod +x time.sh #添加执行权限 第五步:systemctl restart apache2 #重启服务 ``` --- # 测试效果: --- ``` 浏览器输入:www.yu.com/cgi-bin/time.sh #域名后加脚本路径和名字 ``` # 目录索引 ``` 第一步:cd /etc/apache2 #进入路径 第二步:vim apache2.conf #打开配置文件并写入 Options Indexes FollowSymLinks AllowOverride None Require all denied 第三步:systemctl restart apache2 #重启服务 ``` --- # 效果图: ![效果图][8] # 旁批: --- ``` 当目录下有index.html时,则默认选择不会出现目录索引 ``` # 用户验证 ``` 第一步:cd /etc/apache2/sites-available/ #进入目录 第二步:vim 000-default.conf #打开配置文件 AuthName "hello yu" #导航语必须写! AuthType Basic #加密模式 AuthUserfile /etc/apache2/.htpasswd #密码目录 Require valid-user 第三步:htpasswd -cm /etc/apache2/.htpasswd user01 #-c:创建新的文件 -m生成密码 New password: #输入密码 Re-type new password: #验证密码 Adding password for user user01 #创建成功 第四步:htpasswd -m /etc/apache2/.htpasswd user02 #生成密码 第五步:systemctl restart apache2 #重启服务 ``` ##### 效果展示 ![效果图][9] # 用户空间 --- ``` 第一步:cd /etc/apache2/mods-available #进入模块目录 第二步:a2enmod userdir #开启模块 第三步:systemctl restart apache2 #重启服务 第四步:mkdir /home/yu/public_html/ #创建域名目录 第五步:vim /home/yu/public_html/index.html #创建网页 hello yu #写入内容 ``` # 测试: ![效果图][10] [1]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007142617.jpeg [2]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007142650.jpeg [3]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007142715.jpeg [4]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007142737.jpeg [5]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007142758.jpeg [6]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007142816.jpeg [7]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007142835.jpeg [8]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007142510.jpeg [9]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007142504.jpeg [10]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007143016.jpeg 在域名后输入/~yu/ ~:触发条件 yu代表:用户名 # 本章总结 ``` 重点: https VirtualHost 网站权限管理 ``` # 技能实践 ``` 以下https均采用自签名证书: 1. 安装apache2, 创建网站首页内容为“This is my test page”, 支持https访问; 2. 配置apache2的运行用户和组为www; 3. 通过命令行工具从客户端访问apache2, 观察访问日志的增加; 4. 创建两个基于域名的虚拟主机,分别是www.up01.com www.up02.com , 首页内容不同; 5. 虚拟主机www.up01.com 支持https协议访问; 6. 访问www.up02.com时需要用户和密码。 ``` # 扩展指引 ``` Dns 服务器 : 192.168.100.101 Apache服务器: 192.168.100.102 CA服务器 : 192.168.100.103 客户端:192.168.100.104 1. 首先搭建DNS服务 , 完成www.520linux.com、520linux.com的域名解析 3. www.520linux.com的网站仅能够通过https访问(使用http访问自动跳转),使用CA机构签发证 书,CA的根目录应该为/caroot; 4. http://www.520linux.com/downloads/ 目录(需要另外创建)支持文件列表索引,里面有4个文 件(a.txt b.mp3 c.mp4 d.jpg). 5. 当用户使用520linux.com访问的时候自动跳转到www.520linux.com; 6. 当用户使用其他IP访问时,应该被拒绝。 ```

最后修改:2021 年 10 月 07 日
如果觉得我的文章对你有用,欢迎打赏