博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用ssl加密apache服务器来建立连接加密网站
阅读量:6193 次
发布时间:2019-06-21

本文共 2226 字,大约阅读时间需要 7 分钟。

hot3.png

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_cashell> cd /etc/httpd/ssl_cashell> openssl genrsa -des3 -out ca.key 10242.利用建立的RSA私钥,为CA自己建立一个自签名的证书文件shell> openssl req -new -x509 -days 7300 -key ca.key -out ca.crt3.CA已经建立完毕,生成的ca.key 和ca.crt向客户端颁发证书

//apache服务器向CA申请证书

1.客户端生成客户证书的私钥文件shell> openssl genrsa -des3 -out apache_client.key 10242.openssl 生成客户端证书的时候,不能直接生成证书,而是必须通过证书请求文件来生成,现在必须先建立客户端的证书请求文件shell> openssl req -new -key client.key -out client.csr3.有了证书请求文件(client.csr),就可以使用CA的根证书和根私钥(ca.crt,ca.key)来对请求文件进行签名,生成客户端证书client.pemshell> 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_sslshell> yum install mod_ssl.x86_64 2.验证apache主配置文件有下面这条shell> vim /etc/httpd/conf/httpd.confInclude conf.d/*.conf#可以加载ssl的配置文件3.编译ssl.conf-------------------LoadModule ssl_module modules/mod_ssl.soListen 443     #验证上面这两条的存在SSLCertificateFile /etc/httpd/ssl_ca/client.pem#路径改为刚才生成客户端证书文件的路径SSLCertificateKeyFile /etc/httpd/ssl_ca/client.key-------------------4.重启apache服务//在ubuntu客户机登录测试

转载于:https://my.oschina.net/zijian1315/blog/205839

你可能感兴趣的文章
【.NET Core项目实战-统一认证平台】第五章 网关篇-自定义缓存Redis
查看>>
HTTP API 自动化测试从手工测试到平台的演变
查看>>
js 如何判断数组元素是否存在重复项
查看>>
C# 图解教程 第四章 类的基本概念
查看>>
python的内存回收机制即gc模块讲解
查看>>
.NET Core 实现 Redis 批量查询指定格式的Key
查看>>
Phpstorm Alt+Enter 自动导入类
查看>>
让你的系统“坚挺不倒”的最后一个大招——「降级」
查看>>
处理linux下面的mysql乱码问题(下面的utf8换成gb2312也是可以的)
查看>>
Java常见设计模式之适配器模式
查看>>
免费 官方的ASP.NET MVC电子书-Professional ASP.NET MVC 1.0
查看>>
ashx文件的使用[转]
查看>>
Python备份目录及目录下的全部内容
查看>>
MS CRM 2011 RetrieveMultiple with JScript JQuery Silverlight LINQ FetchXML and QueryExpression
查看>>
初识SOA
查看>>
需求:需求获取技术之原型
查看>>
Windows Azure HandBook (4) 分析Windows Azure如何处理Session
查看>>
树莓派练习程序(声音检测)
查看>>
.NET 4.0中的泛型协变和反变
查看>>
POJ 2449 Remmarguts' Date (第K短路)
查看>>