ssl介绍:shell
SSL(Secure Sockets Layer,SSL)是一种安全协议,在网景公司(Netscape)推出首版Web浏览器的同时提出,目的是为网络通讯提供安全及数据完整性保障,SSL在传输层中对网络通讯进行加密。
apache
SSL采用公开密钥技术,保证两个应用间通讯的保密性和可靠性,使客户与服务器应用之间的通讯不被攻击者窃听。它在服务器和客户机两端可同时被支持,目前已成为互联网上保密通信的工业标准。现行的Web浏览器亦广泛将HTTP和SSL相结合,从而实现安全通讯。此协议其继任者是TLSubuntu
HTTPS介绍:
vim
超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通信及对网络服务器身份的鉴定。HTTPS链接常常被用于万维网上的交易支付和企业信息系统中敏感信息的传输。 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,所以加密的详细内容就须要SSL。 HTTPS存在不一样于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通信方法,如今它被普遍用于万维网上安全敏感的通信,例如交易支付方面centos
HTTPS和HTTP的区别:
浏览器
1、https协议须要到ca申请证书,通常免费证书不多,须要交费。安全
2、http是超文本传输协议,信息是明文传输,https 则是具备安全性的ssl加密传输协议。服务器
3、http和https使用的是彻底不一样的链接方式,用的端口也不同,前者是80,后者是443。网络
4、http的链接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。测试
//环境说明:
#首先确保你的apache服务器已经成功运行,再进行下面步骤 A:正规的网站应该向第三方CA颁发机构注册,用户浏览是向CA机构询问此网站证书的有效性 B:centos6.4上自建CA,来向客户端颁发证书,这个自建的CA仅供测试使用 C:apache服务器做为客户向刚才自建的CA机构注册证书
//建立CA来向客户端颁发证书
#建立证书的文件夹能够随便选择,之后在/etc/httpd/conf.d/ssl.conf文件中指定这个证书位置便可 1.首先创建一个CA的根私钥文件,使用RSA格式,1024位 shell> mkdir /etc/httpd/ssl_ca shell> cd /etc/httpd/ssl_ca shell> openssl genrsa -des3 -out ca.key 1024 2.利用创建的RSA私钥,为CA本身创建一个自签名的证书文件 shell> openssl req -new -x509 -days 7300 -key ca.key -out ca.crt 3.CA已经创建完毕,生成的ca.key 和ca.crt向客户端颁发证书
//apache服务器向CA申请证书
1.客户端生成客户证书的私钥文件 shell> openssl genrsa -des3 -out apache_client.key 1024 2.openssl 生成客户端证书的时候,不能直接生成证书,而是必须经过证书请求文件来生成,如今必须先创建客户端的证书请求文件 shell> openssl req -new -key client.key -out client.csr 3.有了证书请求文件(client.csr),就可使用CA的根证书和根私钥(ca.crt,ca.key)来对请求文件进行签名,生成客户端证书client.pem shell> openssl x509 -req -in client.csr -out client.pem -signkey client.key -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650
//添加apache对openssl模块的支持
1.下载mod_ssl shell> yum install mod_ssl.x86_64 2.验证apache主配置文件有下面这条 shell> vim /etc/httpd/conf/httpd.conf Include conf.d/*.conf #能够加载ssl的配置文件 3.编译ssl.conf ------------------- LoadModule ssl_module modules/mod_ssl.so Listen 443 #验证上面这两条的存在 SSLCertificateFile /etc/httpd/ssl_ca/client.pem #路径改成刚才生成客户端证书文件的路径 SSLCertificateKeyFile /etc/httpd/ssl_ca/client.key ------------------- 4.重启apache服务 //在ubuntu客户机登陆测试