apache2配置 进阶代码.note
apt install apache2 -y- 一步一步来,先配置 80 端口的 http :
1.
cd /etc/apache2/sites-available
a2sdissite 000-default.comf
cp 001-www.Elysia.com.ssl.conf
# 注释掉全部,输入:
<virtualHost *:80>
ServerName Elysia.com
ServerAlias www.Elysia.com
DocumentRoot /Elysia/www.Elysia.com
</virtualHost>
:x
mkdir -p /Elysia/www.Elysia.com
a2ensite 001-www.Elysia.com.ssl.conf
vim ../apache2.conf
# 在末尾添加:
<Directory /Elysia/www.Elysia.com>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
:x
echo "Elysia always 'LOVE YOU' forever" > /Elysia/www.Elysia.com/index.html
systemctl restart apache2
- 在客户端上进行访问:
1.
· 192.168.10.99
· Elysia.com
- 三种方式都成功访问:
1.

- 接下来配置 443端口的 https(自签名证书):
1.
- 将 http 请求 重定向到 https
1.
apt install openssl -y
cd /etc/apache2/sites-available
a2enmod ssl
mkdir /Elysia/Key
openssl req -new -x509 -nodes -out /Elysia/Key/Elysia.pem -keyout /Elysia/Key/Elysia.key -subj "/CN=www.Elysia.com" -addext "subjectAltName=DNS:www.Elysia.com"
vim 001-www.Elysia.com.ssl.conf
# 输入(80端口配置有更改)
<virtualHost *:80>
Redirect 301 / https://www.Elysia.com
ServerName Elysia.com
ServerAlias www.Elysia.com
DocumentRoot /Elysia/www.Elysia.com
</virtualHost>
<virtualHost *:443>
ServerName www.Elysia.com
DocumentRoot /Elysia/www.Elysia.com
SSLEngine on
SSLCertificateFile /Elysia/Key/Elysia.pem
SSLCertificateKeyFile /Elysia/Key/Elysia.key
</virtualHost>
<virtualHost *:443>
ServerName Elysia.com
Redirect 301 / https://www.Elysia.com
</virtualHost>
:x
# 注意 重定向 字段必须要放在后面
systemctl restart
apache2- 在客户端上进行访问:
1.
· Elysia.com
- 访问成功,但是提示不安全(正常现象)
1.
这不是因为服务器的 自签名证书配置错误,而是因为客户端没有信任 该自签名证书的‘证书颁发机构’

· 最终这几个网址访问都应显示为:

- 解决方式:
1.
- 配置客户端信任证书颁发机构:
1.
Debian图形化:
3、配置 CA证书颁发机构 签发证书:
· CA Server:
apt install openssl ca-certificates //安装 openssl 和 ca证书颁发机构
/usr/lib/ssl/misc/CA.pl -newca //使用 系统提供的脚本快速创建 CA证书颁发机构
# 输入密码:Skills39
# 确认密码:Skills39
# 输入国家名称:CN
# 输入省名称:GuangDong
# 输入城市名称:GuangZhou
# 输入公司名称:GongMao
# 输入组织单位:ITNetwork
# 输入通用名称:CA
# 输入邮箱
# 扩展信息,回车
# 扩展信息,回车
# 输入刚刚设置的密码:Skills39
· Web Server:
openssl genrsa -out Elysia.key 2048 //生成私钥
openssl req -new -key Elysia.key -out newreq.pem //使用刚刚创建的私钥加密,创建一个证书申请,需要交给CA签发(newreq.pem是脚本文件默认执行的文件)
# 输入国家、地区等信息
# 在通用名一栏,输入域名:www.Elysia.com //输入网页的域名,必须与访问域名相同
· 如果CA证书颁发机构在其它服务器,则需要使用 scp 将 newreq.pem 证书申请文件传递给证书颁发机构签发
如果是在本地,则可以直接进行签发
· CA Server:
/usr/lib/ssl/misc/CA.pl -sign //使用 系统提供 的脚本签发证书(默认名称为:newreq.pem)
# 输入密码:Skills39
y //确认签发
y //再次确认
# 证书签发成功,可以开始使用这张证书的公钥和私钥来配置 Https 了:
mv ~/newcert.pem /Elysia/Key/Elysia.pem
mv ~/Elysia.key /Elysia/Key
vim /etc/apache2/sites-available/001-www.Elysia.com.ssl.conf
# 内容如下:
<virtualHost *:80>
Redirect 301 / https://www.Elysia.com
ServerName Elysia.com
ServerAlias www.Elysia.com
</virtualHost>
<virtualHost *:443>
<Location />
Order Allow,Deny
Deny from 192.168.10.99
Allow from all
</Location>
ServerName www.Elysia.com
DocumentRoot /Elysia/www.Elysia.com
SSLEngine on
SSLCertificateFile /Elysia/Key/Elysia.pem
SSLCertificateKeyFile /Elysia/Key/Elysia.key
</virtualHost>
<virtualHost *:443>
ServerName Elysia.com
Redirect 301 / https://www.Elysia.com
</virtualHost>
:x
4、配置 禁止通过 ip地址 及其它域名进行访问:
目前的配置,客户通过我们的ip地址都可以访问到,甚至书写本地hosts文件,将任意域名解析到我们的地址都能够成功访问,这一点会有极大的风险
·配置apache允许使用php:
先安装软件包:
apt install -y apache2 php8.2-mysql libapache2-mod-php8.2 php8.2-mbstring
php8.2-mysql 是处理mysql数据的
libapache2-mod-php8.2 是用于 php 和 apache2 之间兼容的apt install -y php8.2-fpm
a2enmod proxy_fcgi setentvif
a2enconf php8.2-fpmvim /etc/apache2/sites-enabled/000-default.conf