一:

HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。

二:

HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。

三:

部署https协议

环境要求   yum安装opensslopenssl-devel

创建秘钥证书存放目录

     mkdir/usr/local/nginx/ssl

执行命令  openssl genrsa -des3 -out server.key 1024 #生成秘钥

 

执行命令  openssl req -new -key server.key -out server.csr #创建签名请求的证书(CSR)

 

执行命令  openssl rsa -in server.key -out server_nopassword.key #进行解密

 

执行命令  openssl x509 -req -days 365 -in server.csr-signkey server_nopassword.key -out server.crt # 进行标记证书使用上述私钥和CSR

 

修改nginx配置文件,加载ssl证书

vim /usr/local/nginx/conf/nginx.conf #进去nginx配置文件(在http标题里面加入可以选择最后一行)

server {

   listen 443;

   server_name localhost;

   ssl   on;

   ssl_certificate       /usr/local/nginx/ssl/server.crt;   

   ssl_certificate_key      /usr/local/nginx/ssl/server_nopassword.key;

   ssl_session_timeout   5m;

   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

   ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!LOW:!aNULL:!eNULL;

   ssl_prefer_server_ciphers on;

}