将web服务器搭建成支持ssl的https服务器

传输层安全SSL和TLS

来历
在TCP/IP四层模型把网络由上到下分为:应用层,传输层,网络层,链路层。在应用层,我们有许多的应用层协议,例如:SMTP,POP3,FTP,TFTP,HTTP等,用户在使用这些协议的时候,往往需要保证机密性、完整性、服务器身份认证、不可否认性和可用性。然而他们却无法满足这些安全需求或者说只能提供简单的保护,但在因特网这个开放的环境中,这种保护显得微不足道。

此时我们有两种方法解决这个安全问题,一是为每一种应用层协议增加相应的安全功能;二是从传输层入手,既然高层应用都是基于传输层的,呢么增强这个层次的安全性就显得更具备通用性。明显的后者的性价比更高,SSL安全套接层(Secure Socket Layer)和TLS传输层安全(Transport Layer Security)就是第二种途径的实例。这两者的区别首先是使用的地方,SSL可以说是专门为Web,也就是HTTP协议提供安全保证的传输层协议,而TLS得范围就更广泛了。其余两者大体相同,只是在具体加密算法上有所区别,但整体的协议流程都是差不多的。

SSLv3协议的作用和流程

SSL主要满足机密性、完整性、必选的服务器身份认证、可选的客户端身份认证。此外还会在加密前进行数据的压缩处理。

由4个协议组成:握手协议,记录协议,更改密码规范协议,警告协议

SSL的基本协议流程:

首先是TCP之间的三次握手建立TCP连接
客户机与服务器之间进行算法协商,公钥交换,服务器认证(发送证书)期间用在协商报文中加入随机数防重放攻击
对称密钥的协商,建立安全通信的环境
如此一来,这之后两者的通信就在加密的环境下进行,应用层的内容是非常安全的。

SSL证书介绍

SSL主要做了加密以及服务器认证,加密是通过对称密钥技术,公钥加密技术,还有随机数,哈希散列算法等我们熟知的内容进行作业的。而认证是通过什么方式来认证呢?答案便是数字证书。由证书签证机关CA(Certification Authority)颁发,目前全球信赖的支持浏览器的SSL证书主要有三种:

DV (Domain Validation)域名验证所得的证书仅验证这个域名是你的域名,也就是只验证线上的而不验证线下的。仅能支持网站机密信息的加密,但并不验证网站的真实身份。
OV (Organization Validation)组织验证所得的证书,这需要由签证机关不仅是线上验证你这个域名是你的,而且还要线下验证你线上的东西是属于哪个组织,这种证书在查看使用者的时候就会写明是哪个组织的。
EV (Extended Validation)扩展验证所得的证书,是全球统一严格身份验证颁布的证书,获得难度和花费都很高,但在使用后,域名栏内会用绿色的字写上你的组织名。
如果是个人使用的网站选择DV证书就可以了,你想弄其他的别人也不会颁给你,如果是公司使用的网站,可以获取下OV证书,如果网站非常需要用户的信任,呢么可以去使用EV证书。其中DV证书是有免费的,另外两个是要钱的,下文会对DV证书的获取和安装进行探讨。

WEB服务器部署SSL证书

Apache自身就有SSL的模块,只要启用并且配置好就好了,所以说要让网站使用的协议变成HTTPS**需要一个备案好的域名**;**一台绑定了该域名且装有Web服务器的云服务器**;**以及一个数字证书。**

我们需要域名的原因是因为DV证书的颁布需要进行域名的认证,而**域名认证**的一种方法就是**你在你的web服务器的根目录(webroot)下放置一个签证机构让你放置的文件**,然后签证机构通过域名去访问这个文件,访问到了就认证成功了。

首先我们需要选择一个**证书签证机构**,我使用的是**Let's Encrypt**.这个机关可以免费颁布DV证书给你,并且自身有一个软件certbot.只要在服务器上安装这个软件,就可以通过这个软件完成**证书的生成,认证以及部署**。

具体的部署方法,在certbot的官网上写的非常详细,并且不同的服务器系统,不同的web服务器在命令上有所差别,在certbot更新后也有可能部署的方式有细微的改变,因此,授人以鱼不如授人以渔,自己去下面的官网上看吧:

https://certbot.eff.org/#ubuntuxenial-apache

原文:https://blog.csdn.net/m0_37221465/article/details/79494114

猜你喜欢

转载自blog.csdn.net/qq_40846481/article/details/89374456
今日推荐