HTTPS

第一章 HTTPS 安全證書基本概述

為什么需要使用HTTPS, 因?yàn)镠TTP 不安全回梧。當(dāng)我們使用http 網(wǎng)站時(shí)购对,經(jīng)常會(huì)遇到包遭到劫持和篡改赛糟,如果采用https 協(xié)議,那么數(shù)據(jù)在傳輸過(guò)程中是加密的,所以黑客無(wú)法竊取或者篡改數(shù)據(jù)報(bào)文信息翎蹈。
https 主要解決了什么問題,避免網(wǎng)站傳輸時(shí)信息泄露,避免網(wǎng)站傳輸時(shí)內(nèi)容不被劫持和篡改蘸鲸。
下面我們來(lái)了解一下HTTPS 證書類型
HTTPS 證書購(gòu)買選擇

保護(hù)1 個(gè)域名www
保護(hù)5 個(gè)域名www images cdn test m
通配符域名 *.oldboy.com

HTTPS 注意事項(xiàng)

Https 不支持續(xù)費(fèi),證書到期需重新申請(qǐng)新并進(jìn)行替換.
Https 如果是通配符域名,二級(jí)域名和三級(jí)域名需要分別購(gòu)買起便,如test.m.oldboy.com
Https 顯示綠色, 說(shuō)明整個(gè)網(wǎng)站的URL 都是https 的棚贾。
Https 顯示黃色, 因?yàn)榫W(wǎng)站代碼中包含http的不安全連接。
Https 顯示紅色, 要么證書是假的榆综,要么證書過(guò)期

第二章 Nginx 單臺(tái)實(shí)現(xiàn)HTTPS 實(shí)戰(zhàn)

1.環(huán)境準(zhǔn)備

#nginx 必須有ssl 模塊
[root@web01 ~]# nginx -V
--with-http_ssl_module

#創(chuàng)建存放ssl 證書的路徑
[root@web01 ~]# cd /etc/nginx/ssl_key
[root@web01 /etc/nginx/ssl_key]#

2.使用openssl 命令充當(dāng)CA 權(quán)威機(jī)構(gòu)創(chuàng)建證書(生產(chǎn)不使用此方式生成證書妙痹,因?yàn)椴粫?huì)被互聯(lián)網(wǎng)認(rèn)可)

[root@web01 /etc/nginx/ssl_key]# openssl genrsa -idea -out server.key 2048
Generating RSA private key, 2048 bit long modulus
... +++
e is 65537 (0x10001)

#記住配置密碼, 我這里是1234
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:

3.生成自簽證書,同時(shí)去掉私鑰的密碼


[root@web01 /etc/nginx/ssl_key]# openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:edu
Organizational Unit Name (eg, section) []:SA
Common Name (eg, your name or your server's hostname) []:oldboy
Email Address []:[oldboy@oldboy.com](mailto:oldboy@oldboy.com)

# req -->用于創(chuàng)建新的證書
# new -->表示創(chuàng)建的是新證書
# x509 -->表示定義證書的格式為標(biāo)準(zhǔn)格式
# key -->表示調(diào)用的私鑰文件信息
# out -->表示輸出證書文件信息
# days -->表示證書的有效期

4.證書申請(qǐng)完成后需要了解Nginx 如何配置Https

#是否開始ssl 支持
Syntax: ssl on | off;
Default: ssl off;
Context: http, server

#ssl crt 文件存放位置
Syntax: ssl_certificate file;
Default: —
Context: http, server

#ssl key 文件存放位置
Syntax: ssl_certificate_key file;
Default: —
Context: http, server

5.配置Nginx 配置Https 實(shí)例

[root@web01 ~]# cat /etc/nginx/conf.d/ssl.conf
server {
    listen 443;
    server_name s.oldboy.com;
    ssl on;
    ssl_certificate ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
    location / {
        root /code;
        index index.html;
    }
}
#準(zhǔn)備對(duì)應(yīng)的站點(diǎn)目錄, 并重啟 Nginx 服務(wù)
[root@web01 ~]# mkdir -p /code
[root@web01 ~]# echo "Https" > /code/index.html
[root@web01 ~]# nginx -t
nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/conf.d/ssl.conf:4
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
#有個(gè)報(bào)警提示鼻疮,告訴我們需要使用listen ... ssl這樣的格式
[root@web01 ~]# cat /etc/nginx/conf.d/ssl.conf
server {
    listen 443 ssl;
    server_name s.oldboy.com;
    #ssl on;
    ssl_certificate ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
    location / {
        root /code;
        index index.html;
    }
}
#再次檢查就沒有問題了
[root@web01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 ~]# systemctl restart nginx

6.瀏覽器輸入https://s.oldboy.com 訪問, 由于該證書非第三方權(quán)威機(jī)構(gòu)頒發(fā)怯伊,而是我們自己簽發(fā)的,所以瀏覽器會(huì)警告

image

7.以上配置如果用戶忘記在瀏覽器地址欄輸入https:// 那么將不會(huì)跳轉(zhuǎn)至https判沟,建議配置將用戶訪問http 請(qǐng)求強(qiáng)制跳轉(zhuǎn)https

[root@web01 ~]# cat /etc/nginx/conf.d/ssl.conf      
server {
    listen 443 ssl;
    server_name s.oldboy.com;
    #ssl on;
    ssl_certificate ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
    location / {
        root /code;
        index index.html;
    }
}
server {
    listen 80;
    server_name s.oldboy.com;
    #rewrite 跳轉(zhuǎn)方式
    rewrite ^(.*) https://$server_name$1 redirect;
    #return 跳轉(zhuǎn)方式
    #return 302 https://$server_name$request_uri;
}

第三章 Nginx 集群實(shí)現(xiàn)HTTPS 實(shí)踐

實(shí)戰(zhàn)Nginx 負(fù)載均衡+Nginx WEB 配置HTTPS 安全

1.環(huán)境準(zhǔn)備

主機(jī)名 外網(wǎng)IP(NAT) 內(nèi)網(wǎng)IP(LAN) 角色
lb01 eth0:10.0.0.5 eth1:172.16.1.5 nginx-proxy
web01 eth0:10.0.0.7 eth1:172.16.1.7 nginx-web01
web02 eth0:10.0.0.8 eth1:172.16.1.8 nginx-web02

2.配置后端兩臺(tái)web 節(jié)點(diǎn)監(jiān)聽80 端口, 如已配置則無(wú)需修改

[root@web01 ~]# cat /etc/nginx/conf.d/blog.conf    
server {
        listen 80;
        server_name blog.oldboy.com;
        root /code/wordpress;
        index index.php index.html;

        location ~ \.php$ {
            root /code/wordpress;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
}

3.配置第二臺(tái)WEB節(jié)點(diǎn)

[root@web01 ~]# scp -rp /etc/nginx/ssl_key/ root@172.16.1.8:/etc/nginx/
[root@web01 ~]# scp -rp /etc/nginx/conf.d/ root@172.16.1.8:/etc/nginx/

4.重啟兩臺(tái)后端web 節(jié)點(diǎn)Nginx

[root@web01 ~]# systemctl restart nginx
[root@web02 ~]# systemctl restart nginx

5.Nginx 負(fù)載均衡先生成證書

[root@lb01 ~]# mkdir /etc/nginx/ssl/ssh_key -p
[root@lb01 ~]# mkdir /etc/nginx/ssl_key -p
[root@lb01 ~]# cd /etc/nginx/ssl_key/
[root@lb01 /etc/nginx/ssl_key]# openssl genrsa -idea -out server.key 2048
[root@lb01 /etc/nginx/ssl_key]# openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:edu
Organizational Unit Name (eg, section) []:SA
Common Name (eg, your name or your server's hostname) []:oldboy
Email Address []:[oldboy@oldboy.com](mailto:oldboy@oldboy.com)

6.Nginx 負(fù)載均衡配置文件如下

[root@lb01 ~]# cat /etc/nginx/conf.d/proxy.conf
# 定義后端資源池
upstream site {
    server 172.16.1.7:80 max_fails=2 fail_timeout=10s;
    server 172.16.1.8:80 max_fails=2 fail_timeout=10s;
}

#https配置
server {
    listen 443 ssl;
    server_name blog.oldboy.com;
    ssl_certificate ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
    location / {
        proxy_pass http://site;
        include proxy_params;
    }
}
#用戶http請(qǐng)求跳轉(zhuǎn)至https
server {
    listen 80;
    server_name blog.oldboy.com;
    return 302 https://$server_name$request_uri;
}

7.重啟Nginx 負(fù)載均衡

[root@lb01 ~]# nginx -t
[root@lb01 ~]# systemctl restart nginx

8.配置代理和nginx服務(wù)都是https
proxy_params配置

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;

反向代理配置文件

# 定義后端資源池
upstream site {
    server 172.16.1.7:80 max_fails=2 fail_timeout=10s;
    server 172.16.1.8:80 max_fails=2 fail_timeout=10s;
}

upstream ssl {
    server 172.16.1.7:443 max_fails=2 fail_timeout=10s;
    server 172.16.1.8:443 max_fails=2 fail_timeout=10s;
}

#https配置
server {
    listen 443 ssl;
    server_name s.oldboy.com;
    ssl_certificate ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
    location / {
        proxy_pass https://ssl;
        include proxy_params;
    }
}
#用戶http請(qǐng)求跳轉(zhuǎn)至https
server {
    listen 80;
    server_name s.oldboy.com;
    return 302 https://$server_name$request_uri;
}

nginx配置文件

server {
    listen 443 ssl;
    server_name s.oldboy.com;
    #ssl on;
    ssl_certificate ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
    location / {
        root /code;
        index index.html;
    }
}

9.wordpress和wecenter配置https
wecenter在后臺(tái)配置:

image

wordpress除了后臺(tái)配置以外還需要在nginx配置文件里添加php-fastcgi解析的參數(shù)

location ~ \.php$ {
    ...
    fastcgi_param  HTTPS on;
    ...
}

作者:張亞_7868
鏈接:http://www.reibang.com/p/70d58411e309
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有耿芹。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)崭篡,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吧秕,一起剝皮案震驚了整個(gè)濱河市琉闪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌砸彬,老刑警劉巖颠毙,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異砂碉,居然都是意外死亡蛀蜜,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門增蹭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)滴某,“玉大人,你說(shuō)我怎么就攤上這事滋迈■荩” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵杀怠,是天一觀的道長(zhǎng)椰憋。 經(jīng)常有香客問我,道長(zhǎng)赔退,這世上最難降的妖魔是什么橙依? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮硕旗,結(jié)果婚禮上窗骑,老公的妹妹穿的比我還像新娘。我一直安慰自己漆枚,他們只是感情好创译,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著墙基,像睡著了一般软族。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上残制,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天立砸,我揣著相機(jī)與錄音,去河邊找鬼初茶。 笑死颗祝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播螺戳,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼搁宾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了倔幼?” 一聲冷哼從身側(cè)響起盖腿,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凤藏,沒想到半個(gè)月后奸忽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堕伪,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揖庄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了欠雌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蹄梢。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖富俄,靈堂內(nèi)的尸體忽然破棺而出禁炒,到底是詐尸還是另有隱情,我是刑警寧澤霍比,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布幕袱,位于F島的核電站,受9級(jí)特大地震影響悠瞬,放射性物質(zhì)發(fā)生泄漏们豌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一浅妆、第九天 我趴在偏房一處隱蔽的房頂上張望望迎。 院中可真熱鬧,春花似錦凌外、人聲如沸辩尊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)摄欲。三九已至,卻和暖如春疮薇,著一層夾襖步出監(jiān)牢的瞬間胸墙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工惦辛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留劳秋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像玻淑,于是被迫代替她去往敵國(guó)和親嗽冒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容