用ssl加密apache服务器来建立连接加密网站

青春壹個敷衍的年華 提交于 2019-12-01 16:11:52

ssl介绍:

SSL(Secure Sockets Layer,SSL)是一种安全协议,在网景公司(Netscape)推出首版Web浏览器的同时提出,目的是为网络通信提供安全及数据完整性保障,SSL在传输层中对网络通信进行加密。

SSL采用公开密钥技术,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。它在服务器和客户机两端可同时被支持,目前已成为互联网上保密通讯的工业标准。现行的Web浏览器亦普遍将HTTP和SSL相结合,从而实现安全通信。此协议其继任者是TLS

HTTPS介绍:

         超文本传输安全协议(缩写: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之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面

HTTPS和HTTP的区别:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、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客户机登录测试


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!