ha 配置ssl_基于haproxy的全站https

本文介绍了如何应对运营商流量劫持,通过全站HTTPS提供更安全的访问体验。详细讲述了如何创建自签名CA证书,配置Nginx服务器,修改haproxy配置,以及进行测试。虽然自签证书会导致浏览器警告,但整个过程为部署HTTPS提供了基础。
摘要由CSDN通过智能技术生成

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

3c8ce6380daa33c267ccb0e2e66a02de.png

这是一个常见的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信息

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

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机中填写的一致)

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

将 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是自己搭建的,是未被互联网信任的,所有仍会在地址前打×,所以,还是去购买一个认证吧。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值