假设您已经安装完成apached/httpd,且已经完成以下项目:
- dns的配置
- ca的基础配置
- 为每台实验主机都配置了安装源,fqdn,等必要步骤。
httpd.conf代码
```/etc/httpd/conf.d/conf.html# 80端口 - 重定向到HTTPS
<VirtualHost *:80>
ServerName www.lab.org
ServerAlias lab.org *.lab.org
# 拒绝IP访问
RewriteCond %{HTTP_HOST} ^[0-9.]+$
RewriteRule .* - [F]
# 重定向到HTTPS
RewriteEngine On
RewriteRule ^(.*)$ https://www.lab.org$1 [R=301,L]
</VirtualHost>
# 443端口 - HTTPS站点
<VirtualHost *:443>
ServerName www.lab.org
ServerAlias lab.org server1.lab.org web.lab.org
DocumentRoot /var/www/html
# SSL配置
SSLEngine On
SSLCertificateFile /etc/pki/tls/certs/lab.org.crt
SSLCertificateKeyFile /etc/pki/tls/private/lab.org.key
# 强制SSL
SSLRequireSSL On
# 子域名重定向到www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.lab\.org$
RewriteRule ^(.*)$ https://www.lab.org$1 [R=301,L]
# 设置默认返回内容
ErrorDocument 200 "Hello_OpenEuler"
</VirtualHost>
# 拒绝默认IP访问
<VirtualHost _default_:80>
<Location />
Require all denied
</Location>
</VirtualHost>
<VirtualHost _default_:443>
<Location />
Require all denied
</Location>
</VirtualHost>
```
上文这是一份XML格式的配置文件
在apache2的网站配置和设置中,用的都是以上这种叫做xml1格式的配置文件。
编辑完以后请在存放网页的文件夹插入这一条“Hello_OpenEuler”(命令如下):
echo "Hello_OpenEuler" | sudo tee /var/www/html/index.html
代码段1:
# 80端口 - 重定向到HTTPS
<VirtualHost *:80>
ServerName www.lab.org
ServerAlias lab.org *.lab.org
# 拒绝IP访问
RewriteCond %{HTTP_HOST} ^[0-9.]+$
RewriteRule .* - [F]
# 重定向到HTTPS
RewriteEngine On
RewriteRule ^(.*)$ https://www.lab.org$1 [R=301,L]
</VirtualHost>
解释
<VirtualHost *:80>是虚拟主机——*(通配符所有):端口(80)
指定了server名称为www.lab.org
别名(lab.org,*.lab.org)
使用通配符和程序提供的程序内变量使用规则重写了内容
%{HTTP_HOST} ^[0-9.]+$
↑客户端访问主机 ↑是否为ip
然后启用重写指定到通配符所指的地方
^(.*)$ https://www.lab.org$1 [R=301,L]
将所有请求永久重定向(301)到 https://www.lab.org
</VirtualHost>然后结束标记
代码段2:
# 443端口 - HTTPS站点
<VirtualHost *:443>
ServerName www.lab.org
ServerAlias lab.org server1.lab.org web.lab.org
DocumentRoot /var/www/html
# SSL配置
SSLEngine On
SSLCertificateFile /etc/pki/tls/certs/lab.org.crt
SSLCertificateKeyFile /etc/pki/tls/private/lab.org.key
# 强制SSL
SSLRequireSSL On
# 子域名重定向到www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.lab\.org$
RewriteRule ^(.*)$ https://www.lab.org$1 [R=301,L]
# 设置默认返回内容
ErrorDocument 200 "Hello_OpenEuler"
</VirtualHost>
解释
<VirtualHost *:443>是虚拟主机——*(通配符所有):端口(443)
服务器名称和别名如上
ServerName www.lab.org
ServerAlias lab.org server1.lab.org web.lab.org
定义了文件根目录(DocumentRoot) /var/www/html
启用SSLEngine On
SSRequireSSL强制启用SSL
SSLCertificateFile是证书文件
SSLCertificateKeyFile是证书密钥
然后像刚刚那样重定向并且需要添加规则。在此不细说了,详情看第一段代码解释。
默认返回内容可以直接发送ErrorDocument请求定义为200并且返回指定的"Hello_OpenEuler"
</VirtualHost>标记结束。
代码段3:
# 拒绝默认IP访问
<VirtualHost _default_:80>
<Location />
Require all denied
</Location>
</VirtualHost>
<VirtualHost _default_:443>
<Location />
Require all denied
</Location>
</VirtualHost>
依次就是_default_:80/443端口全部禁止访问。
- (可扩展标记语言(Extensible Markup Language))
XML 简介 – XML:可扩展标记语言 | MDN ↩︎
