运维学习之Apache的配置访问控制虚拟主机和加密访问https
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维学习之Apache的配置访问控制虚拟主机和加密访问https相关的知识,希望对你有一定的参考价值。
apache
一、安装Apache服务
yum install httpd -y
systemctl start httpd
systemctl stop firewalld
systemctl enable httpd
systemctl disable firewalld
二、apache信息
1.apache的默认发布文件
index.html
在默认发布文件内写入要展示的内容,在浏览器中输入本机http://172.25.254.126可以看到内容
2.apache的配置文件
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
3.apache的默认发布目录
/var/www/html
4.apache的默认端口
80
三、apache的基本配置
1.修改默认发布文件
vim /etc/httpd/conf/httpd.conf
164 DirectoryIndex westos.html
systemctl restart httpd
##当selinux是disable状态
vim /etc/httpd/conf/httpd.conf
120 DocumentRoot "/westos/www/test"
<Directory "/westos/www/test">
Require all granted
</Directory>
systemctl restart httpd
##当selinux是enforcing状态
vim /etc/httpd/conf/httpd.conf
120 DocumentRoot "/westos/www/test"
<Directory "/westos/www/test">
Require all granted
</Directory>
systemctl restart httpd
semanage fcontext -a -t httpd_sys_content_t ‘/westos(/.*)?‘
restorecon -RvvF /westos
修改/westos/html/westos文件内容
因为selinux为enforcing,需要修改新建目录的安全上下文,再刷新配置
3.apache的访问控制
##设定ip的访问
vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/admin"> ##允许所有人访问admin目录但是拒绝250主机
Order Allow,Deny
Allow from All
Deny from 172.25.254.250
</Directory>
order行按顺序执行,前者优先级大于后者
<Directory "/var/www/html/admin"> ##只允许250主机访问admin目录
Order Deny,Allow
Allow from 172.25.254.250
Deny from All
</Directory>
htpasswd -m /etc/httpd/accessuser admin
vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/admin">
AuthUserFile /etc/httpd/accessuser ##用户认证文件
AuthName "Please input your name and password !!" ##用户认证提示信息
AuthType basic ##认证类型
Require valid-user ##认证用户,认证文件中所有用户都可以通过
[Require user admin] ##只允许认证文件中admin用户访问,二写一
</Directory>
生成用户认证密匙
编辑配置文件如下
设定admin用户可以登陆
设定admin1用户不能登陆
admin1不能登陆
php html cgi
html语言默认支持
php语言
vim index.php
<?php
phpinfo();
?>
yum install php -y
systemctl restart httpd
安装php
在默认发布目录下添加index.php文件,写入以下测试内容
测试成功!
cgi语言
mkdir /var/www/html/cgi
vim index.cgi
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print `date`;
vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/cgi">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
systemctl restart httpd
cgi的发布文件编辑
给index.cgi加上可执行权限
修改default.conf文件
修改安全上下文
测试成功!
1.定义
可以让我们的一台apache服务器在被访问不同域名的时候显示不同的主页
2.建立测试页
mkdir virtual/money.westos.com/html -p
mkdir virtual/news.westos.com/html -p
echo "money.westos.com‘s page" >virtual/money.westos.com/html/index.html
echo "news.westos.com‘s page" >virtual/news.westos.com/html/index.html
创建news.westos.com和sports.westos.com目录,编辑两个发布文件如下
3.配置
vim /etc/httpd/conf.d/default.conf ##位指定域名的访问都访问default
<Virtualhost _default_:80> ##虚拟主机开启的端口
DocumentRoot "/var/www/html" ##虚拟主机的默认发布目录
CustomLog "logs/default.log" combined ##虚拟主机日志
</Virtualhost>
vim /etc/httpd/conf.d/news.conf ##指定域名news.westos.com的访问到指定默认发布目录中
<Virtualhost *:80>
ServerName "news.westos.com"
DocumentRoot "/var/www/virtual/news.westos.com/html"
CustomLog "logs/news.log" combined
</Virtualhost>
<Directory "/var/www/virtual/news.westos.com/html"> ##默认发布目录的访问授权
Require all granted
</Directory>
建立default.conf news.conf sports.conf三个文件作为访问文件
default.conf中的文件内容
news.conf中的文件内容
sports.conf中的文件内容
重启服务,在26主机中的/etc/hosts配置文件中写入本地解析如下
4.测试
在浏览器所在主机中
vim /etc/hosts
172.25.254.100 www.westos.com news.westos.com
测试结果如下
五、网页加密访问https
1.https定义
Hyper text transfer protocol over Secure socker layer
通过ssl
2.配置
yum install mod_ssl -y
yum install crypto-utils -y
genkey www.westos.com
/etc/pki/tls/private/www.westos.com.key
/etc/pki/tls/certs/www.westos.com.crt
genkey www.westos.com 生成证书
选择不发送证书信息
不加密密钥
证书文件生成,检查http端口443,确定防火墙可以通过端口
测试,证书信息变为自己设定的内容
vim /etc/httpd/conf.d/login.conf
<Virtualhost *:443>
ServerName "login.westos.com"
DocumentRoot "/var/www/virtual/login.westos.com/html"
CustomLog "logs/login.log" combined
SSLEngine on ##开始https功能
SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt #证书
SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key ##密钥
</Virtualhost>
<Directory "/var/www/virtual/login.westos.com/html">
Require all granted
</Directory>
<Virtualhost *:80> ##网页重写实现自动访问https
ServerName login.westos.com
RewriteEngine on
RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
</Virtualhost>
##########################################################################
## ##
## ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301] ##
## ##
## ^(/.*)$ 客户主机在地址栏中写入的所有字符,不包含换行符 ##
## https:// 定向成为的访问协议 ##
## %{HTTP_HOST} 客户请求主机 ##
## $1 $1的值就表示^(/.*)$的值 ##
## [redirect=301] 临时重定向 302永久重定向 ##
## ##
##########################################################################
配置文件中添加生成的证书和密钥,配置各项和http加密访问有关的项
创建新的发布文件
mkdir /var/www/virtual/login.westos.com/html -p
vim /var/www/virtual/login.westos.com/html/index.html
systemctl restart httpd
测试:
在客户主机中添加解析
vim /etc/hosts
172.25.254.100 login.westos.com
在真机本地解析中加入login.westos.com
访问http://login.westos.com 会自动跳转到
https://login.westos.com 实现网页数据加密传输
六、搭建简易论坛(安装包法)
安装所需的mariadb数据库,安装php插件,安装Apache,安装php-mysql服务
解压压缩包到/var/www/html下
修改readme文件中要求的文件权限为777,开启数据库服务
在浏览器中输入172.25.254.126/upload/install进入安装服务
检测全部通过
填写信息
论坛安装成功,可以用管理员身份进入论坛
以上是关于运维学习之Apache的配置访问控制虚拟主机和加密访问https的主要内容,如果未能解决你的问题,请参考以下文章