https简介
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
采用https的服务器必须从CA (Certificate Authority)申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。所以目前所有的银行系统网站,关键部分应用都是https 的。客户通过信任该证书,从而信任了该主机。其实这样做效率很低,但是银行更侧重安全。这一点对我们没有任何异议,我们的服务器,采用的证书不管是自己发布的还是从公众的地方发布的,其客户端都是自己人,所以我们也就肯定信任该服务器。
SSL协议的工作流程
服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
实现过程
1.安装http服务
[root@uodekoaix Server]# yum install httpd-2.2.3-31.el5.i386.rpm
2.创建CA
[root@uodekoaix CA]# mkdir crl certs newcerts
[root@uodekoaix CA]# touch index.txt serial
[root@uodekoaix CA]# echo "01">serial
[root@uodekoaix CA]# ll
总计 24
drwxr-xr-x 2 root root 4096 08-20 11:40 certs
drwxr-xr-x 2 root root 4096 08-20 11:40 crl
-rw-r--r-- 1 root root 0 08-20 11:42 index.txt
drwxr-xr-x 2 root root 4096 08-20 11:40 newcerts
drwx------ 2 root root 4096 2009-06-30 private
-rw-r--r-- 1 root root 3 08-20 11:43 serial
[root@uodekoaix CA]# echo "welcome">>index.html
3.产生钥匙链
[root@uodekoaix CA]# openssl genrsa 1024>private/cakey.pem
[root@uodekoaix CA]# chmod 600 private/*
4.产生CA证书
[root@uodekoaix CA]# openssl req -new -key private/cakey.pem -x509 -out cacert.pem -days 3650
5.web服务器获取钥匙
[root@uodekoaix CA]# mkdir -pv /etc/httpd/certs
[root@uodekoaix CA]# cd /etc/httpd/certs
[root@uodekoaix certs]# openssl genrsa 1024 >httpd.key
6.web服务器产生证书
[root@uodekoaix certs]# openssl req -new -key httpd.key -out httpd.csr
7.web服务器向CA请求证书
[root@uodekoaix certs]# openssl ca -in httpd.csr -out httpd.cert
8.安装SSL模块
[root@uodekoaix Server]# yum install mod_ssl
9.修改/etc/httpd/conf.d/ssl.conf
10.修改/etc/httpd/conf.d/ssl.conf 开启证书链
11.关闭80端口
12.客户机访问站点并安装CA证书
13.修改客户机host文件
14.利用https访问站点