天天看点

Linux上搭建https服务器

https原理:

步骤:

1、客户端浏览器向服务器发送如下信息:

(1)客户端支持的SSL/TLS协议的版本号

(2)密钥算法套件

(3)客户端产生的随机数,用于稍后生成“会话密钥”

2、服务器向客户端发送如下信息:

(1)确认使用的加密通信协议版本,如果浏览器与服务器支持的版本不一致,服务器关闭加密通信

(2)确认使用的加密方法

(3)服务器证书

(4)服务器生成的随机数,用于稍后生成“会话密钥”

3、客户端利用服务器发来的信息验证服务器的合法性。如果合法性验证没有通过,通讯将断开,如果合法性通过,则可以知道认证服务器的公钥是真实有效的数字证书认证机构,并且服务器发来的公钥是值得信赖的。(加密数字证书的公钥传送给客户端,客户端用私钥解密,将数字证书解开,可以看到该服务器是可信赖的和服务器发来的公钥)

4、客户端随机产生一个用于后面会话连接的对称密钥,然后用服务器的公钥加密,将加密后的对称密钥发送给服务器。

工作流程可分为三个阶段:

(1)认证服务器

浏览器内置一个受信任的CA机构列表,并保存了这些CA机构的证书。第一阶段服务器会提供经CA机构认证颁发的服务器证书,如果认证该服务器证书的CA机构存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程,否则,浏览器将提示用户,根据选择是否继续。也可管理受信任的CA机构列表,向其中添加我们想要信任的CA机构。

(2)协商会话密钥

客户端在认证完服务器后,通过服务器的公钥与服务器进行加密通信,协商出两个对称的会话密钥,分别用于加密客户端往服务端发送数据的客户端会话密钥,用于加密服务端往客户端发送数据的服务端会话密钥。(还要协商对称会话密钥,是因为非对称加密相对复杂度更高,在数据传输过程中,使用对称加密,可以节省计算资源,另外,会话密钥是随机生成,每次协商都会有不一样的结果,安全性更高)

(3)数据加密通信

此时客户端服务器都有了本次通信的会话密钥,之后传输的所有http数据,都通过会话密钥加密。从而保证了数据的私密性和完整性。

##其中非对称加密算法用于握手过程中加密生成的密码,对称加密算法用于对真正的传输数据进行加密,hash算法用于验证数据的完整性

非对称加密算法:RSA、DSA/DSS

对称加密算法:AES、3DES、RC4

hash算法:MD5、SHA1、SHA256

配置:

X.509通用的证书格式包含三个文件:

key:私钥文件

csr:证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名

crt:是CA机构签名后的证书,包含证书中的信息。

例:配置安全web服务站点http://www.openlab.com配置SSL加密,

要求:生成自签名证书文件为openlab.crt,私钥文件为openlab.key

第一步:安装SSL

#yum install mod_ssl -y

#rpm -qa mod_ssl

第二步:创建访问文件目录及其内容

#mkdir /www/openlab

#echo this is openlab > /www/openlab/index.html

第三步:编辑配置文件

#vim /etc/httpd/conf.d/vhost.conf

通过#sp命令打开/etc/httpd/conf.d/ssl.conf来复制粘贴五行SSL开头的内容,此处图片内容的.crt和.key路径已修改

第四步:注册证书

#cd /ect/pki/tls/certs

#make openlab.crt

第五步:修改/etc/httpd/conf.d/vhost.conf中的.crt和.key

路径

Linux上搭建https服务器

第六步:在/etc/hosts下输入ip绑定的域名

Linux上搭建https服务器

第七步:重启http服务

#systemctl restart httpd

第八步:浏览器测试

Linux上搭建https服务器
Linux上搭建https服务器

http://www.dtmao.cc/news_show_1307991.shtml