基于haproxy的全站https

      前一段时间新疆等地用户访问国务院官网,在首页上发现大量淫秽信息及广告,后反映给相关工作人员。经排查,并非是网站被劫持和入侵,而是运营商流量劫持导致的这个结果……此处且不论该时间后续事宜,作为一名优秀的运维工程师,我们面对运营商如此流氓的行为,应该怎么办? 当然是全站HTTPS了,目前,百度、阿里、腾讯等国内互联网巨头已经采用全站HTTPS。下面我将带你模拟搭建HTTPS。

    

基于haproxy的全站https

             这是一个常见的haproxy架构型,我们现在采用此架构,将HTTPS部署在haproxy上。

  

第一步:创建CA证书

     

1.CA机自签名:

#创建数据库
[root@centos]cd /etc/pki/CA touch index.txt
[root@centos]echo 10 > serial
#生成私钥
[root@centos](umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)
#自签证书
[root@centos]cd /etc/pki/CA
[root@centos]openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 7300

填写CA信息
基于haproxy的全站https

基于haproxy的全站https


2.客户端申请CA

生产私钥
[root@centos](umask 066;openssl genrsa -out /etc/pki/tls/private/test.key 1024)
生成申请文件
[root@centos]openssl req -new -key /etc/pki/tls/private/app.key -day 365 -out /etc/pki/tls/test.csr

填写CA信息(一定要和CA机中填写的一致)

基于haproxy的全站https

基于haproxy的全站https
将 test.csr 文件拷贝到CA机 /tmp 目录下(scp test.csr 172.18.32.1)

在CA机上批准颁发证书

[root@centos]openssl ca -in /tmp/test.csr -out /etc/pki/CA/certs/test.crt -days 100
certs 目录下已经生成证书文件(test.crt)

再拷回客户端就可以了。

第二步:配置Nginx服务器

#nginx1[root@centos] cd /app[root@centos]wget http://nginx.org/packages/centos/5/x86_64/RPMS/nginx-1.10.3-1.el5.ngx.x86_64.rpm[root@centos] yum localinstall nginx-xxxxxx[root@centos] service nginx start[root@centos] echo "Test Page" > /usr/share/nginx/html/index.html#nginx2[root@centos] cd /app[root@centos]wget http://nginx.org/packages/centos/5/x86_64/RPMS/nginx-1.10.3-1.el5.ngx.x86_64.rpm[root@centos] yum localinstall nginx-xxxxxx[root@centos] service nginx start[root@centos] echo "Test Page" > /usr/share/nginx/html/index.html

第三步:修改haproxy配置

首先生成一个pem文件供haproxy使用

[root@centos] cat /app/test.crt  > test.pem[root@centos] cat /app/test.key  >> test.pem

在修改hapeoxy配置

[root@centos] vim /etc/haproxy/haproxy.cfgglobal    log            127.0.0.1 local2    chroot       /var/lib/haproxy    pidfile        /var/run/haproxy.pid    maxconn     4000    user         haproxy    group       haproxy    daemon    stats socket /var/lib/haproxy/statsdefaults    mode                   http    log                       global    option                  httplog    option                  dontlognull    option                  http-server-close    option    forwardfor    except 127.0.0.0/8    option                  redispatch    retries                 3    timeout http-request    10s    timeout queue           1m    timeout connect         10s    timeout client          1m    timeout server          1m    timeout http-keep-alive 10s    timeout check           10s    maxconn                 3000frontend  nginx *:80    bind *:443 ssl crt /app/https.pem    bind *:80    redirect scheme https if !{ ssl_fc }       #将所有http协议转为https协议    default_backend web    #acl invalid_src src 192.168.37.130    #http-request allow if  invalid_src backend web    balance     roundrobin    server web1   192.168.37.135:80 check    server web2   192.168.37.134:80 checklisten stats        bind :9099        stats enable        stats uri /stats        stats realm HAPorxy\ Stats\ Page        stats auth admin:admin        stats admin if TRUE        stats hide-version

第四步:测试

测试访问http://192.168.37.133

会看到自动跳转到https了,此处会出现未认证证书的报错,忽略即可。

就算把CA证书导入浏览器,因为我们得CA是自己搭建的,是未被互联网信任的,所有仍会在地址前打×,所以,还是去购买一个认证吧。

原创文章,作者:cnc,如若转载,请注明出处:http://www.178linux.com/76212

(11)
cnccnc
上一篇 2017-05-18
下一篇 2017-05-18

相关推荐

  • Linux系统压缩和解压缩工具gzip、bzip2、xz以及tar打包工具总结

    在Linux系统使用过程中,对于一些不是常用的文件,利用cpu的时间资源对文件进行压缩可以节省一定的磁盘空间,对系统中某个目录经常会有备份的需求,可以使用Linux系统中的tar打包工具实现,文件的压缩对于大量的网络文件传输可以节约带宽,同时也能降低服务器的负载,我们经常需要从网站下载软件包到本地主机,这些包基本都是打包压缩的,要想使用安装,需要我们解压缩他…

    Linux干货 2016-08-18
  • linux sort 命令详解

    linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 [rocrocket@rocrocket programming]$&nb…

    Linux干货 2016-08-15
  • 马哥教育网络班21期+第13周课程练习

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加samba用户gentoo,centos和u…

    Linux干货 2016-10-24
  • linux的基础小命令

    1、ifconfig,显示主机的IP地址 2、echo 用法echo [short-option]… [string]…     -n:不进行换行     string可以使用单引号或双引号引用变量,单引号变量内容不会替换,双引号会替换  &nb…

    Linux干货 2016-10-30
  • 文件查找locate和find

    locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 依赖于事先构建的索引 索引的构建是在系统较为空闲时自动进行(周期性任务),管理员手动更新数据库(updatedb) 索引构建过程需要遍历整个根文件系统,极消耗资源 工作特点: •查找速度快 •模糊查找 •非实时查找 •搜索的是文件的全路径,不仅仅是文件名 •…

    2017-08-11
  • 8.5_Linux文本处理工具和grep之正则表达式的使用

    Linux文本处理工具使用 文件查看工具的使用 cat 命令的使用  此命令一般用于查看文件内容比较多 NAME        cat – concatenate files and print on the&…

    Linux干货 2016-08-08