前言:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
准备工作:
四台虚拟机:一台DNS服务器(172.18.48.215)、一台访问主机(220)、一台http服务器(100)、一台CA证书主机(225)
关闭防火墙,关闭SELinux
开启相应的服务
安装相应的应用程序包
一、CA
1.创建私钥证书
(umask=066;openssl genrsa -out ./private/cakey.pem 2048)
2.创建自签CA证书
openssl req -new -x509 -key ./private/cakey.pem -days 3650 -out cacert.pem
3.创建http主机的私钥
(umask=066; openssl genrsa -out key.pem 1024)
4.创建http主机的证书申请
openssl req -new -key key.pem -out cert.pem
5.把证书申请交给CA,CA再颁发证书,再把证书文件传送给http主机
scp cert.csr CA主机 (在http主机上执行)
openssl ca -in cert.csr -out text.crt -days 365
scp text.crt http主机 (在CA主机上执行)
二、DNS
1. vim /etc/named.rfc1912.zones
zone "a.com" {
type master;
file "xdg.com.zone";
};
zone "b.net" {
type master;
file "b.net.zone";
};
zone "c.org" {
type master;
file "c.org.zone";
};
2. vim /var/named/a.com.zone (另外两个类似)
$TTL 1D
@ IN SOA acom www.xdg.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS acom
acom A 172.18.48.225
websrv A 172.18.48.100
www CNAME websrv
ftp A 172.18.48.100
三、http
在http的服务器上做相应的网站响应页面(在这里做的是虚拟主机响应页面)
1.在使用虚拟机之前要在/etc/httpd/conf/httpd.conf的文件中做配置
# 在虚拟主机当中把虚拟主机的响应的域名给启动不然,无法用域名访问
NameVirtualHost *:80 # 默认是关闭的(centos7上是不用)
2.这里我是单独的创建一个配置文件来管理我的虚拟主机的站点
vim /etc/httpd/conf.d/vhost.conf #这里目录下,存放配置文件,且文件后缀必须为.conf
<virtualhost *:80>
servername www.a.com
documentroot "/var/www/html/a/"
</virtualhost>
<virtualhost *:80>
servername www.b.net
documentroot "/var/www/html/b/"
</virtualhost>
<virtualhost *:80>
servername www.c.org
documentroot "/var/www/html/c/"
</virtualhost>
四、https
yum install mod_ssl # 安装模块
vim /etc/httpd/conf.d/ssl.conf # 编辑配置文件
SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt
# *.a.com的证书,如果有多个不同的域名的话要另外创建,申请
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key # 主机的私钥文件
SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem # ca的证书文件
<VirtualHost _default_:443> # 如果指定其它ip在这里修改
servername www.a.com # 所在访问的域名
documentRoot "/var/www/html/a/" # 所在的目录
五、测试
1.在访问主机上,DNS指向的是DNS服务器的主机
2.在测试的时候,有的服务的目录必须要有相应的权限才可以访问(会报403的错误信息)