内容简介:基于haproxy的全站https
前一段时间新疆等地用户访问国务院官网,在首页上发现大量淫秽信息及广告,后反映给相关工作人员。经排查,并非是网站被劫持和入侵,而是运营商流量劫持导致的这个结果……此处且不论该时间后续事宜,作为一名优秀的运维工程师,我们面对运营商如此流氓的行为,应该怎么办? 当然是全站HTTPS了,目前,百度、阿里、腾讯等国内互联网巨头已经采用全站HTTPS。下面我将带你模拟搭建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信息
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机中填写的一致)
将 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.cfg global 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/stats defaults 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 3000 frontend 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 check listen 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是自己搭建的,是未被互联网信任的,所有仍会在地址前打×,所以,还是去购买一个认证吧。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 某鱼直播数据全站爬取
- Python爬虫---爬取腾讯动漫全站漫画
- DNSPod将对全站SSL证书进行升级
- 58 全站用户行为数据仓库建设及实践
- MrDoc 0.5.1 版本发布,支持配置全站强制登录
- 全站HTTPS升级系列(一)升级前的科普工作
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Django 1.0 Template Development
Scott Newman / Packt / 2008 / 24.99
Django is a high-level Python web application framework designed to support the rapid development of dynamic websites, web applications, and web services. Getting the most out of its template system a......一起来看看 《Django 1.0 Template Development》 这本书的介绍吧!
RGB HSV 转换
RGB HSV 互转工具
HEX CMYK 转换工具
HEX CMYK 互转工具