综合架构之安全访问服务

课程涉及
1) HTTPS安全访问概念介绍
2) HTTPS安全访问配置过程
3) HTTPS安全页面跳转功能
4) blog伪静态跳转功能
5) 实现wordpress https访问结合负载均衡


HTTPS安全访问概念介绍

利用传统HTTP访问网站,安全隐患

  • a 无法保证数据机密性----->http是铭文的
    解决: 利用公钥和私钥 对数据进行加密 --- 对称加密算法(通讯双方都有钥匙和锁头,传输数据的时候用锁头锁住,传到对端时,用钥匙进行解密。网站的回复数据包时也会将内容用锁头锁住。)
  • b 无法保证数据完整性
    解决: 利用公钥和私钥 对数据进行加密 --- 对称加密算法(通讯双方都有钥匙和锁头)
    加密数据指纹(特征码加锁锁住) 保证数据完整性

  • c 无法对用户身份验证
    解决: 利用公钥和私钥 对数据进行加密 --- 非对称加密算法(通讯只有一方有秘钥对 第一方只有公钥)

如何确定第一次访问的网站时真实的网站。


image

通过查询CA机构查询证书的真伪,每个网站都会有CA机构颁发的真实证书。


HTTPS安全访问配置过程

第一个历程: 创建私钥过程

openssl genrsa -idea -out server.key 2048 (1024-2048)
    genrsa   --- 指定创建私钥类型
    idea     --- 需要给私钥设置密码信息
    out      --- 进行标准输出 
    2048     --- 密钥加密长度
实际操作:
[root@web01 ssh_key]# openssl genrsa -idea -out server.key 2048
    Generating RSA private key, 2048 bit long modulus
    ........+++
    .......+++
    e is 65537 (0x10001)
    Enter pass phrase for server.key: ---必须设置密码,否则会报错。另外,可防止私钥去申请证书,申请和同网站一样的证书,会不安全。
    Verifying - Enter pass phrase for server.key:

openssl genrsa -out server.key 2048 --- 私钥没有密码信息(不安全)

第二个历程: 利用私钥创建证书过程
申请真正证书:
云主机 --- 域名信息(备案) --- 证书(域名)
系统创建假证:
openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
req --- 创建证书
days --- 指定证书有效期
x509 --- 证书的格式信息
-nodes -newkey --- 去掉私钥文件密码信息
-keyout --- 加载私钥文件
-out --- 输出生成证书文件(假的)
第三个历程: 利用网站服务加载证书
# 加载ssl crt证书文件存放路径
Syntax: ssl_certificate file; ---- 加载证书信息
Default: —
Context: http, server

# 加载ssl key私钥文件存放路径
Syntax:     ssl_certificate_key file;   ---- 加载私钥信息
Default:    —
Context:    http, server

[root@web01 conf.d]# cat www.conf 
server {
    listen            443 ssl;---->加载证书
    server_name  www.oldboy.com;
    ssl_certificate     /etc/nginx/ssh_key/server.crt;---->也可相对路径
    ssl_certificate_key /etc/nginx/ssh_key/server.key;
    location / {
        root   /html/www;
        index  index.php oldboy.jpg index.html index.htm;
    }

通过负载均衡HTTPS访问

方式一: 全网站证书配置
第一个历程: web01 web02 web03 保存证书和私钥信息
openssl genrsa -idea -out server.key 2048
openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt

第二个历程: 进行nginx配置文件修改
[root@web01 conf.d]# cat www.conf
server {
listen 443 ssl;
server_name www.oldboy.com;
ssl_certificate /etc/nginx/ssh_key/server.crt;
ssl_certificate_key /etc/nginx/ssh_key/server.key;
location / {
root /html/www;
index index.php oldboy.jpg index.html index.htm;
}

第三个历程: 修改负载均衡服务
openssl genrsa -idea -out server.key 2048
openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt

创建证书和密钥

ssl_certificate     /etc/nginx/ssh_key/server.crt;
    ssl_certificate_key /etc/nginx/ssh_key/server.key;
    upstream default {
      server 10.0.0.7:443;
      #server 10.0.0.8:443;
      server 10.0.0.9:443;
    }   
    server {
        listen        443 ssl;
        server_name   localhost;
        include  proxy_params;
        location / {
       proxy_pass  https://default;
    }
    }

方式二: 负载均衡证书配置
第一个历程: 去掉web节点证书配置

    listen            80;
    server_name  www.oldboy.com;
    #ssl_certificate     /etc/nginx/ssh_key/server.crt;
    #ssl_certificate_key /etc/nginx/ssh_key/server.key;

第二个历程: 编写负载均衡配置文件

    ssl_certificate     /etc/nginx/ssh_key/server.crt;
    ssl_certificate_key /etc/nginx/ssh_key/server.key;
    upstream default {
      server 10.0.0.7:80;
      #server 10.0.0.8:443;
      server 10.0.0.9:80;
    }
    server {
        listen        443 ssl;
        server_name   localhost;
        include  proxy_params;
        location / {
           proxy_pass  http://default;
        }
    }

两种方式原理图

HTTPS安全页面跳转功能
实现跳转方式一:

rewrite   ^/(.*)  https://ssl.oldboy.com$1 redirect; 
http://ssl.oldboy.com /oldboy/oldboy.html  --> https://ssl.oldboy.com/oldboy/oldboy.html
url       ^/(.*)uri不管时什么后面都原封不动的输出----》url进行跳转
实现跳转方式二:   
    return    302      https://$server_name$request_uri;
    http://ssl.oldboy.com /oldboy/oldboy.html -- 302 --- https://ssl.oldboy.com/oldboy/oldboy.html
            $server_name     $request_uri
方式一: 利用web服务器实现跳转    
    第一个历程: 修改web服务配置文件
    server {  
    listen           80;
    server_name      www.oldboy.com;
       rewrite ^/(.*)  https://www.oldboy.com/$1 redirect;
    }
    server {
        listen            443 ssl;
        server_name  www.oldboy.com;
        ssl_certificate     /etc/nginx/ssh_key/server.crt;
        ssl_certificate_key /etc/nginx/ssh_key/server.key;
        location / {
            root   /html/www;
            index  index.php oldboy.jpg index.html index.htm;
        } 
第二个历程: 修改负载均衡配置  ---- >502,有问题???
    ssl_certificate     /etc/nginx/ssh_key/server.crt;
    ssl_certificate_key /etc/nginx/ssh_key/server.key;
    upstream default {
      server 10.0.0.7:80;
      #server 10.0.0.8:443;
      #server 10.0.0.9:80;
    }   
    server {
        listen        443 ssl;
        server_name   localhost;
        include  proxy_params;
           location / {
             proxy_pass  https://default;
           } 
    }
    server {
        listen        80;
        server_name   localhost;
        include  proxy_params;
        location / {
       proxy_pass  http://default;
    }
    }

实现wordpress网站实现HTTPs访问

第一个历程: 正常访问wordpress页面,修改访问域名为https://blog.oldboy.com
wordpress后台 -- 设置 -- 常规
wordpress地址: https://blog.oldboy.com
站点地址: https://blog.oldboy.com

第二个历程: 配置web服务

    server {
    listen            80;
    server_name  blog.oldboy.com;
    client_max_body_size 5m;
    location / {
        root   /html/blog;
        index  index.php oldboy.jpg index.html index.htm;
    }
    location ~ \.php$ {
        root /html/blog;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
    fastcgi_param HTTPS on;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
      }
    }

第三个历程: 配置负载均衡

    ssl_certificate     /etc/nginx/ssh_key/server.crt;
    ssl_certificate_key /etc/nginx/ssh_key/server.key;
    upstream default {
      server 10.0.0.7:80;
     server 10.0.0.8:443;
      server 10.0.0.9:80;
    }   
    server {
       listen        80;
       server_name   www.oldboy.com;
       return    302  https://$server_name$request_uri;
    }
    server {
        listen        443 ssl;
        server_name   localhost;
        include  proxy_params;
        location / {
       proxy_pass  http://default;
      }
    }

wordpress网站实现伪静态功能---->?这种动态态变为静态显示

第一个步骤:在wordpress后台修改页面配置
登录后台---设置---固定链接---自定义结构--/%post_id%.html


image

第二个步骤:实现nginx伪静态配置
blog.oldboy.com/oldboy.html

第一个部分: 
location / {                  
   try_files $uri $uri/ /index.php?$args==$uri;
                 去站点找这个信息 有没有这个目录 如果都没有直接访问伪静态的信息。
}

第二个部分:         http://blog.oldboy.com/4.html  -- 站点目录 --- 
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
                                  协议         url不变 变为后台配置的

[root@web01 conf.d]# cat blog.conf 
server {
  listen   80;
  server_name   blog.etiantian.org;
  rewrite /wp-admin$ $scheme://$host$uri/ permanent;
  location / {
        root   /html/blog;
        index  index.php index.html;
        try_files $uri $uri/ /index.php?$args==$uri;
  }
  location ~ \.php$ {
        root /html/blog;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS on;
        fastcgi_pass  127.0.0.1:9000;
        include fastcgi_params;
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容