zoukankan      html  css  js  c++  java
  • 综合架构_网络安全访问(https)

    概念介绍HTTPs(secure)

    ssl -- 安全套接字层

    HTTP数据包是明文

    https提高了安全:

    01.保证数据机密性

    02.保证数据完整性

    03.保证通讯可靠性

    1.数据的机密性

    传输的数据可能会被第三方随时看到

    解决方式:

    a>

    b> 对称加密算法 私钥 和 公钥 发送发 

     2.数据的完整性

    传输的数据不能随意让任何人进行修改

    解决方式:

     对称加密算法。公钥和私钥 保护好特征码

    3.身份认证问题

    第一次通讯时,需要确认双方的身份正确

    总结:

    对称加密算法: 通讯双方。都有钥匙和锁头

    非对称加密算法: 通讯双发, A 主机上会有钥匙和锁头,B主机上只有锁

    解决:非对称加密算法 私钥在服务器上保存好,公钥进行分发

    公钥 ===证书(身份证)

    CA证书颁发机构

    实现HTTP向HTTPS跳转访问

    实现网站伪静态配置

    第一个历程:创建私钥和公钥(证书)

    [root@web01 conf.d]# rpm -qa openssl
    openssl-1.0.2k-19.el7.x86_64

        cd /etc/nginx/

    openssl genrsa -idea -out server.key 2048 【创建私钥文件】 genrsa --- 创建什么类型私钥 idea --- 需要给私钥文件设置密码 out --- 创建生成一个私钥文件 openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt 【假证】 req --- 创建一个证书文件 days --- 证书文件有效期(默认 天) x509 --- 证书文件格式 sha256 --- 指定生成证书算法 nodes --- 去除私钥的密码生成证书 keyout --- 指定加载私钥文件 out --- 生成的证书信息

     

     第二个历程: 在nginx程序中,编写配置文件开启HTTPS功能,加载私钥和公钥信息

    ssl_certificate       ssl_key/server.crt;

    ssl_certificate_key   ssl_key/server.key;

    [root@web02 nginx]# cat /etc/nginx/conf.d/www.conf

    server {

      listen 443 ssl;

       server_name www.oldboy.com www.jd.com;

       root /html/www;

       index index.html;

       ssl_certificate server.crt;

       ssl_certificate_key server.key;

    }

    第三个历程:

    方法一:进行HTTP访问跳转HTTPS功能配置

        server {
           listen            80;
           server_name       www.oldboy.com;
           rewrite  ^/(.*)$  https://$host/$1 redirect; 【permanent】
        }
        server {
           listen            443 ssl;
           server_name       www.oldboy.com www.jd.com;
           root              /html/www;
           index             index.html;
           ssl_certificate      server.crt;
           ssl_certificate_key    server.key;
        }

    方法二:

     

     

     

     

    利用负载均衡实现HTTPs访问过程

    方式一: 全网服务器都配置证书和私钥信息

       用户客户端访问     --- lb01                    ---   web节点
       www.oldboy.com       http://www.oldboy.com
                            https://www.oldboy.com  --->  listen 443 ssl
        
        第一个历程: 编写lb负载均衡配置文件
        upstream oldboy {
          #server 10.0.0.7:443;
          server 10.0.0.8:443;
          #server 10.0.0.9:80;
        }    
        server {
              listen        80;
              server_name   localhost;
              rewrite  ^/(.*)$  https://$host/$1 redirect; 【permanent】
        }
        server {
          listen        443 ssl;
          server_name   localhost;
              ssl_certificate      server.crt;
              ssl_certificate_key    server.key;
          location / {
             proxy_pass  https://oldboy;
             proxy_set_header Host $host;
             proxy_set_header X-Forwarded-For $remote_addr;      
          }
        }
        
        第二个历程: web节点配置
        server {
           listen            443 ssl;
           server_name       www.oldboy.com www.jd.com;
           root              /html/www;
           index             index.html;
           ssl_certificate      server.crt;
           ssl_certificate_key    server.key;
        }

    方式二: 负载均衡服务器配置证书和私钥信息

    用户客户端访问   --- lb01                    --->   web节点
        www.oldboy.com       http://www.oldboy.com
                             https://www.oldboy.com  --->   listen 80
    
        第一个历程: 负载均衡配置信息
        upstream oldboy {
          #server 10.0.0.7:443;
          server 10.0.0.8:80;
          #server 10.0.0.9:80;
        }    
        server {
              listen        80;
              server_name   localhost;
              rewrite  ^/(.*)$  https://$host/$1 redirect;
        }
        server {
          listen        443 ssl;
          server_name   localhost;
              ssl_certificate      server.crt;
              ssl_certificate_key    server.key;
          location / {
             proxy_pass  http://oldboy;
             proxy_set_header Host $host;
             proxy_set_header X-Forwarded-For $remote_addr;      
          }
        }
        
        第二个历程: web节点配置信息
        server {
           listen            80;
           server_name       www.oldboy.com www.jd.com;
           root              /html/www;
           index             index.html;
        }

    利用HTTPs访问动态页面 wordpress

     第一个历程: 修改配置文件信息
        修改负载均衡配置文件:
        upstream oldboy {
              #server 10.0.0.7:443;
              server 10.0.0.8:443;
              #server 10.0.0.9:80;
            }
        server {
              listen        80;
              server_name   localhost;
              rewrite  ^/(.*)$  https://$host/$1 redirect;
        }
        server {
              listen        443 ssl;
              server_name   localhost;
              ssl_certificate       server.crt;
              ssl_certificate_key   server.key;
              location / {
                 proxy_pass  https://oldboy;
                 proxy_set_header Host $host;
                 proxy_set_header X-Forwarded-For $remote_addr;
              }
         }
        
        web服务器配置过程    
        server {
          listen       443 ssl;
          server_name   blog.oldboy.com blog.oldgirl.com;
          ssl_certificate       server.crt;
          ssl_certificate_key   server.key;
          location / {
              root         /html/blog;
              index        index.php index.html;
          }
          location ~ .php$ {
              root /html/blog;
              fastcgi_pass  127.0.0.1:9000;
              fastcgi_index index.php;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              fastcgi_param HTTPS on;
              include fastcgi_params;
          }
        }
        
        第二个历程: 修改wordpress后台信息
        修改地址为 https://blog.oldboy.com 
    
    

      


    第三个历程: 重启nginx程序
  • 相关阅读:
    C#通过反射获取类中的方法和参数个数,反射调用方法带参数
    C#利用WinRAR实现压缩和解压缩
    C# 使用HttpWebRequest Post提交数据,携带Cookie和相关参数示例
    C#使用Linq To XML读取XML,Linq生成XML,Linq创建带属性或带节点XML
    MVC使用Newtonsoft无需实体类,实现JSON数据返回给前端页面使用
    JSON对象与字符串之间的相互转换
    Javascript正则表达式详细讲解和示例,通俗易懂
    C#比较两个list集合,两集合同时存在或A集合存在B集合中无
    Uploadify 3.2上传文件,限制类型,大小,传递参数等
    c# 反射得到实体类的字段名称和值,DataTable转List<T>
  • 原文地址:https://www.cnblogs.com/zhanghongqi/p/11896540.html
Copyright © 2011-2022 走看看