• 综合架构_网络安全访问(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程序
  • 相关阅读:
    gdb段错误
    gdb断点
    init.d详解
    asp.net中的服务器端控件 textbox 设为只读属性后无法获取 javascript给其赋的值
    关于“金点子”征集通知
    Notepad++ SQL Assistant
    IoC Container Benchmark Unity, Windsor, StructureMap and Spring.NET
    如何判断个人电脑是多少位(32位?还是64位系统)
    批量执行SQL文件
    SQL Server 2005 dev 开发板 版本说明
  • 原文地址:https://www.cnblogs.com/zhanghongqi/p/11896540.html
Copyright © 2020-2023  润新知