基于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
下一篇 2017-05-18

相關推薦

  • 鏈接分析算法之:主題敏感PageRank

      前面的討論提到。PageRank忽略了主題相關性,導致結果的相關性和主題性降低,對于不同的用戶,甚至有很大的差別。例如,當搜索“蘋果”時,一個數碼愛好者可能是想要看 iphone 的信息,一個果農可能是想看蘋果的價格走勢和種植技巧,而一個小朋友可能在找蘋果的簡筆畫。理想情況下,應該為每個用戶維護一套專用向量,但面對海量用戶這種方法顯然不可行。所…

    Linux干貨 2016-02-17
  • CentOS6.9系統上編譯安裝httpd.2.2.32

    本文所做的所有操作是在一部新安裝的CentOS6.9系統上。 1.環境與配置 環境說明:VMware上安裝的CentOS6.9系統,兩張系統盤做成的yum源 配置:編譯生成的所有的文件都存放在/usr/local/httpd22/這個目錄下 2.安裝GCC編譯器 [root@localhost ~]# yum grouplist | grep “Develo…

    2017-04-20
  • 第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;  (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@localhost ~]# fdisk /dev/sdb #創建10G分區 Welcome to fdisk (util-linux 2.23.2). Changes wi…

    Linux干貨 2017-02-19
  • 細數Linux發行版

    什么是Linux 廣義上講:Linux內核+應用程序狹義上講:Linux內核  > Linux內核指的是我們通常所說的Kernel,主要用于負責系統調用、進程管理、內存管理、文件系統管理等功能。  應用程序指的是由GNU組織提供的開源的、通用的應用程序,如gcc、glibc、vi等。 我們平常所說的Linux,通常指廣義層面上的Li…

    Linux干貨 2017-08-30
  • 馬哥教育網絡班22期+第1周課程練習

    一、計算機組成部分及其功能:硬件系統和軟件系統     1、計算機的硬件系統組成及其功能:         運算器:處理數據的算術運算及邏輯運算即數據加工處理;         控制器:根據…

    Linux干貨 2016-08-15
  • Linux基礎命令及獲取命令幫助

    何為命令?         linux命令是對Linux系統進行管理的命令。對于Linux系統來說,無論是中央處理器、內存、磁盤驅動器、鍵盤、鼠標,還是用戶等都是文件,Linux系統管理的命令是它正常運行的核心,與之前的DOS命令類似。linux命令在系統中有兩種類型:內置She…

    Linux干貨 2016-10-25
欧美性久久久久