首页 > 代码库 > <Apache服务的搭建"三件套"《目录验证》《虚拟主机》《加密证书》>
<Apache服务的搭建"三件套"《目录验证》《虚拟主机》《加密证书》>
自己没事会整理一些小知识,复习原来的同时也帮助新手。
vvvvvvvvvvvvv开启apache目录验证vvvvvvvvvvvvvv
htpasswd -cm uers redhat //redhat用户是虚拟的用户uers为生成加密用户的密码文件
# htpasswd -cm uers redhat //第二次这样输入它会把第一次的输入覆盖掉
[root@redhat httpd]# cat uers
redhat:$apr1$8X/YcAoY$xlwRboAtWudU26krVPoyD1
# htpasswd -m uers westos //少个c就不会覆盖原先的
[root@redhat httpd]# cat uers
redhat:$apr1$8X/YcAoY$xlwRboAtWudU26krVPoyD1
westos:$apr1$HUl2zxD9$CI2YcuhNO68hEqch3ttMn1
编辑Apache的配置文件
<Directory "/var/www/html/admin">
AllowOverride ALL
authuserfile "/etc/httpd/uers"
authname "input your name "
authtype basic
require valid-user //指的是所有用户
# require user admin //这个指的是单个用户
</Directory>
测试时ip+admin(目录)
vvvvvvvvvvvvvvapache虚拟主机的配置vvvvvvvvvvvvvvvvv
cd /var/www //2个发布目录
# mkdir html1
# cd html1/
vim index.html
/var/www/html
vim index.html
apache的配置文件
NameVirtualHost *:80 //打开80端口
<VirtualHost *:80> //配置apche的配置文件
DocumentRoot /var/www/html //这个是Apache默认发布目录
ServerName redhat.example.com
ErrorLog logs/redhat.example.com-error_log
CustomLog logs/redhat.example.com-access_log common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html1 //这个目录和上面那个不是一个目录,看清这个是“html1”
ServerName www.example.com
ErrorLog logs/www.example.com-error_log
CustomLog logs/www.example.com-access_log common
</VirtualHost>
客户端
# vim /etc/hosts
192.168.3.30 redhat.example.com
192.168.3.30 www.example.com 在浏览器中分别输入redhat.example.com www.example.com域名
vvvvvvvvvvvvvvvvvvvvApache加密证书的制作vvvvvvvvvvvvvvvvvvvvvvvvvvv
# yum install mod_ssl -y //按装mod_ssl软件包
/etc/pki/tls/private
# rm -rf localhost.key //默认安装好软件包回生成一对私钥
/etc/pki/tls/certs
# rm -rf localhost.crt //删除公钥
# make localhost.crt //自己生成一对公私钥
localhost.crt localhost.key
# /etc/init.d/httpd restart //重启apche服务会提示输入密码
Enter pass phrase:
# openssl --help
# openssl genrsa 1024
# openssl genrsa 1024 > localhost.key //导出私钥
# make localhost.crt //编辑公钥
# /etc/init.d/httpd restart //重启系统发现不会提示让你输入密码
https://www.example.com/
redhat.example.com
https://redhat.example.com/ //发现不同的域名访问到的内容是相同的,说明虚拟主机有问题 redhat.example.com
/etc/httpd/conf.d/ //配置ssl.conf它所使用的端口为443
# vim ssl.conf
NameVirtualHost *:443 //写在ssl文件中的其实就是Apache虚拟主机的内容,port由80变为443,只是多了带色的那几行,仅此而已
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
DocumentRoot /var/www/html
ServerName redhat.example.com
ErrorLog logs/redhat.example.com-error_log
CustomLog logs/redhat.example.com-access_log common
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
DocumentRoot /var/www/html1
ServerName www.example.com
ErrorLog logs/www.example.com-error_log
CustomLog logs/www.example.com-access_log common
</VirtualHost>
# /etc/init.d/httpd restart
客户端测试
https://www.example.com/
www.example.com
https://redhat.example.com/
redhat.example.com