基于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.www58058.com/76212

(11)
cnccnc
上一篇 2017-05-18 17:31
下一篇 2017-05-18 22:38

相關推薦

  • N25 第一周作業 2016/12/5

       1.描述計算機的組成及其功能         計算機組成由:CPU 內存 IO設備           功能:                cpu就是中…

    Linux干貨 2016-12-05
  • btr文件系統與網絡基礎

    btrfs文件系統技術預覽版Btrfs (B-tree, Butter FS, Better FS), GPL, Oracle, 2007, CoW核心特性:多物理卷支持:btrfs可由多個底層物理卷組成;支持RAID,以及聯機“添加”、“移除”,“修改”寫時復制更新機制(CoW):復制、更新及替換指針,而非“就地”更新數據及元數據校驗碼:checksum子…

    Linux干貨 2016-09-02
  • 一. Linux 基礎

    一。linux的歷史 二。虛擬機中安裝linux操作系統。 三?;A命令的使用。

    2017-08-29
  • LAMP的編譯安裝

    一、編譯安裝amp: (1)系統環境:centos6,7 httpd依賴于apr和apr-util appache protable runtime (2)開發環境: Development Tools,Server Platform Development (3)各程序的版本: httpd:2.2,2.4 php:5.x mysql:5.1,5.5,5.6…

    Linux干貨 2016-10-17
  • PXE網絡引導自動化安裝系統詳解

    一、PXE:預引導加載環境  1.PXE          Preboot ExecuteEnvironment:支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial f…

    2016-04-30
欧美性久久久久