day-50 网站服务安全访问(HTTPS)

00.课程介绍部分
    1.高可用服务双主设置
    2.网站安全访问概念介绍
    3.实现HTTPS访问部署过程
    4.实现HTTP向HTTPS跳转访问过程
    5.实现wordpress动态网站HTTPS访问
    6.实现网站伪静态配置

    综合架构完成需求说明
    1.综合架构需要完成项目
        完成内容:
        基础部分:
        扩展部分(简单)
        扩展部分(复杂)

    2.综合架构完成时间规划
    第一天: rsync 全网备份  nfs 实时同步  文档编写
    第二天: ansible web lb keepalived     文档编写
    第三天: LNMP www bbs blog  https      文档编写 
    第四天~第七天: 简单扩展项
    第八天~第十天: 复杂扩展项
    第十一天:      检查架构服务是否正确 一键化剧本 
    第十二天:      将文档汇总编辑      

    3.如何进行复述架构完成情况
    1) 自我介绍
    2) 架构部署规划
    3) 详细说明     扩展技巧  新的  部署流程
    4) 分享架构异常问题  
    5) 特殊知识点分享 *
    6) 感恩  
    7) 排错
01.课程知识回顾
    1.高可用服务:避免单点故障
    2.实现方式:利用keepalived软件实现
              利用keepalived软件实现管理lvs服务
              利用keepalived1软件实现后端节点健康检查功能
              利用keepalived软件实现冗余功能
    3.高可用的原理:vrrp协议
                  利用vrrp协议实现主备通讯
                  利用vrrp协议实现主备竞争
                  利用vrrp协议实现组播发送
                  vrrp协议传输时使用明文
    4.高可用服务的部署过程
            第一步:web服务部署
            第二步:部署负载均衡服务
            第三步:部署keepalived
    5.高可用服务常见问题
            1.脑裂问题:高可用集群中,多台主机出现了vip地址
                解决:编写监控脚本
            2.keepalived的存在价值,nginx停了后keepalived也要听
                解决:编辑监控脚本
02.实现双主配置
    第一步:编写keepalived配置文件
        vim /etc/keepalived/keepalived.conf
    lb01:
            vrrp_instance oldboy {
                state MASTER
                interface eth0
                virtual_router_id 63
                priority 110
                advert_int 1
                authentication {
                    auth_type PASS
                    auth_pass 1111
                }
                virtual_ipaddress {
                   10.0.0.3
                }
            }
            vrrp_instance oldgirl {
                state BACKUP
                interface eth0
                virtual_router_id 64
                priority 100
                advert_int 1
                authentication {
                    auth_type PASS
                    auth_pass 1111
                }
                virtual_ipaddress {
                   10.0.0.4
                }
            }

    lb02:
            vrrp_instance oldboy {
                state BACKUP
                interface eth0
                virtual_router_id 63
                priority 100
                advert_int 1
                authentication {
                    auth_type PASS
                    auth_pass 1111
                }
                virtual_ipaddress {
                    10.0.0.3
                }
            }
            vrrp_instance oldgirl {
                state MASTER
                interface eth0
                virtual_router_id 64
                priority 110
                advert_int 1
                authentication {
                    auth_type PASS
                    auth_pass 1111
                }
                virtual_ipaddress {
                    10.0.0.4
                }
            }


    第二步:修改负载均衡服务配置 lb01 lb02
        vim /etc/nginx/nginx.conf
    方式一:
        server {
          listen        10.0.0.3:80;
          server_name   www.oldboy.com;
          location / {
             proxy_pass  http://oldboy;
                 proxy_set_header Host $host;
                 proxy_set_header X-Forwarded-For $remote_addr;
          }
        }
        server {
              listen        10.0.0.4:80;
              server_name   bbs.oldboy.com;
              location / {
                 proxy_pass  http://oldboy;
                     proxy_set_header Host $host;
                     proxy_set_header X-Forwarded-For $remote_addr;
              }
        }

    方式二:
        server {
          listen        10.0.0.3:80;
          listen        10.0.0.4:80;
          server_name   localhost;
          location / {
             proxy_pass  http://oldboy;
                 proxy_set_header Host $host;
                 proxy_set_header X-Forwarded-For $remote_addr;
          }
        }
03.网站安全访问概念介绍 HTTP(secure)
    1.数据的机密性    对称加密算法    私钥和公钥  保护好算法信息 发送方(私钥/公钥) --- 接收方(公钥/私钥)
    2.数据的完整性    对称加密算法    私钥和公钥  保护好特征码
    3.身份认证问题    非对称加密算法              私钥在服务器上保留好  公钥进行分发
        公钥 === 证书
        CA证书颁发机构
04.如何实现HTTPS安全访问网站
    第一步:创建私钥和公钥(证书) 
    cd /etc/nginx 
        openssl genrsa -idea -out server.key 2048
        genrsa   ---创建什么类型私钥
        idea     ---需要给私钥文件设置密码
        out      ---创建生成一个私钥文件
        2048     ---加密位数

        openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
        req       ---创建一个证书文件
        days      ---证书有效期(天)
        x509      ---证书文件格式
        sha256    ---指定生成证书算法
        nodes     ---去除私钥的密码生成证书 
        keyout    ---指定加载私钥文件

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

        vim /etc/nginx/conf.d/www.conf 中添加

        ssl_certificate    server.crt;
        ssl_certificate_key    server.key;

        HTTPS端口号不是80,listen需要改为443 ssl;
        listen  443 ssl;

    第三步:进行HTTP访问跳转HTTPS功能配置

        vim /etc/nginx/conf.d/www.conf 中添加

        server {
            listen            80;
            server_name       www.oldboy.com;
            rewrite  ^/(.*)$  https://$host/$1 redirect;

        }

    第四步:检查配置文件 (全)

    cat /etc/nginx/conf.d/www
        server {
           listen            80;
           server_name       www.oldboy.com;
           rewrite  ^/(.*)$  https://$host/$1 redirect;
        }
        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;
        }
05.利用负载均衡实现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:443;
        }   
        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       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:443;
          server 10.0.0.9:443;
        }   
        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;
        }
06.利用HTTPS访问动态页面
    第一步:修改配置文件信息
        修改负载均衡配置文件 vim /etc/nginx/nginx.conf

        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程序

你可能感兴趣的:(day-50 网站服务安全访问(HTTPS))