运维学习之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 

技术分享2.修改默认发布目录

##当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,需要修改新建目录的安全上下文,再刷新配置

技术分享

重启服务后访问到westos目录技术分享

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不能登陆

技术分享

4.apache语言支持

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文件

技术分享

修改安全上下文

技术分享

测试成功!

四、apache的虚拟主机

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的主要内容,如果未能解决你的问题,请参考以下文章

运维学习之openssh-server命令运用及控制

运维学习之加密和解密

运维学习之selinux初级管理

运维学习之系统虚拟机管理

Linux运维学习之LAMP搭建个人博客网站

运维学习之iptables防火墙基本设定