Nginx基于ssl的网站

这里是个人做实验,所以自己创建证书,如果是公司,需要购买证书。
1.https简介
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据
2.https协议原理
首先,客户端与服务器建立连接,各自生成私钥和公钥,是不同的。服务器返给客户端一个公钥,然后客户端拿着这个公钥把要搜索的东西加密,称之为密文,并连并自己的公钥一起返回给服务器,服务器拿着自己的私钥解密密文,然后把响应到的数据用客户端的公钥加密,返回给客户端,客户端拿着自己的私钥解密密文,把数据呈现出来
基于SSL的网站基于非对称加密算法

第一步:生成私钥和证书
openssl genrsa -out cert.key 2048 #生成rsa算法的私钥2048位
openssl req -new -x509 -key cert.key -out cert.pem #生成证书
cp {cert.key,cert.pem} /application/nginx-1.12.2/conf/

步骤二:修改Nginx配置文件调用私钥和证书对网站加密

server {
        listen       443 ssl;
        server_name  xxx.com;
        ssl     on;
        ssl_certificate      cert.pem;                #指定证书存放位置
        ssl_certificate_key  cert.key;              #指定私钥存放位置
        ssl_session_cache shared:SSL:10m; #在建立完ssl握手后如果断开连接,在session_timeout时间内再次连接,不需要再次建立握手,可以复用之前的连接,单位兆
        ssl_session_timeout 1440m;                   #是定SSL会话超时时间单位秒
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  #指定SSL协议版本
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #指定SSL加密算法
        ssl_prefer_server_ciphers on;  #指定优先采用服务器端加密算法
        location / {
           root   /web2;
           index  index.html index.htm;
        }
}
server {
    listen 80;
    server_name xxx.com;
    return 302 https://$server_name$request_uri; 
}

如果负载后面的机器是动态网站,前端配了https后端php会不知道使用的是什么协议造成错误.
后端nginx配置

location ~ \.php$ {
                root /www;
                fastcgi_index index.php;          
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_pass  127.0.0.1:9000;
               fastcgi_param HTTPS on;   #告诉后端PHP使用的是https
       }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值