成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【nginx運(yùn)維基礎(chǔ)(7)】配置SSL支持https訪問

mingzhong / 2740人閱讀

摘要:證書主要有兩個(gè)功能加密和身份證明,通常需要購(gòu)買,也有免費(fèi)的,本文使用阿里云的一年免費(fèi)期的證書。申請(qǐng)免費(fèi)證書阿里云控制臺(tái)產(chǎn)品與服務(wù)安全云盾證書,點(diǎn)擊購(gòu)買證書,選擇免費(fèi)型補(bǔ)全申請(qǐng)簽發(fā)證書,然后下載證書。

關(guān)于 SSL 證書

有關(guān) SSL 的介紹可以參閱阮一峰老師的《SSL/TLS協(xié)議運(yùn)行機(jī)制的概述》。

SSL 證書主要有兩個(gè)功能:加密身份證明,通常需要購(gòu)買,也有免費(fèi)的,本文使用阿里云的一年免費(fèi)期的ssl證書。

申請(qǐng)免費(fèi)證書

阿里云控制臺(tái)-產(chǎn)品與服務(wù)-安全(云盾)-SSL證書,點(diǎn)擊購(gòu)買證書,選擇免費(fèi)型DV SSL->補(bǔ)全申請(qǐng)簽發(fā)證書,然后下載證書。

配置證書

進(jìn)入nginx配置目錄,增加certs/文件夾,把剛剛下載的兩個(gè)文件上傳到certs/文件夾中。

對(duì)443端口和80端口進(jìn)行監(jiān)聽,443端口要啟用ssl

server {
    listen 443;
    server_name bjubi.com; // 你的域名
    ssl on;
    root /var/www/bjubi.com; // 前臺(tái)文件存放文件夾,可改成別的
    index index.html index.htm;// 上面配置的文件夾里面的index.html
    ssl_certificate /etc/nginx/conf.d/certs/site2/www.site1.com.crt;
    ssl_certificate_key /etc/nginx/conf.d/certs/site2/www.site1.com.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        index index.html index.htm;
    }
}
server {
    listen 80;
    server_name www.site1.com;// 你的域名
    rewrite ^(.*)$ https://$host$1 permanent;// 把http的域名請(qǐng)求轉(zhuǎn)成https
}
HTTPS服務(wù)器優(yōu)化 減少 CPU 運(yùn)算量

SSL 的運(yùn)行計(jì)算需要消耗額外的 CPU 資源,一般多核處理器系統(tǒng)會(huì)運(yùn)行多個(gè)工作進(jìn)程(worker processes),進(jìn)程的數(shù)量不會(huì)少于可用的 CPU 核數(shù)。SSL 通訊過程中『握手』階段的運(yùn)算最占用 CPU 資源,有兩個(gè)方法可以減少每臺(tái)客戶端的運(yùn)算量:

激活keepalive長(zhǎng)連接,一個(gè)連接發(fā)送更多個(gè)請(qǐng)求

復(fù)用 SSL 會(huì)話參數(shù),在并行并發(fā)的連接數(shù)中避免進(jìn)行多次 SSL『握手』

這些會(huì)話會(huì)存儲(chǔ)在一個(gè) SSL 會(huì)話緩存里面,通過命令ssl_session_cache配置,可以使緩存在機(jī)器間共享,然后利用客戶端在『握手』階段使用的seesion id去查詢服務(wù)端的 session cathe(如果服務(wù)端設(shè)置有的話),簡(jiǎn)化『握手』階段。

1M 的會(huì)話緩存大概包含 4000 個(gè)會(huì)話,默認(rèn)的緩存超時(shí)時(shí)間為 5 分鐘,可以通過使用ssl_session_timeout命令設(shè)置緩存超時(shí)時(shí)間。下面是一個(gè)擁有 10M 共享會(huì)話緩存的多核系統(tǒng)優(yōu)化配置例子:

http {
    #配置共享會(huì)話緩存大小
    ssl_session_cache   shared:SSL:10m;
    #配置會(huì)話超時(shí)時(shí)間
    ssl_session_timeout 10m;

    server {
        #...
        #設(shè)置長(zhǎng)連接
        keepalive_timeout   70;
        #...
使用 HSTS 策略強(qiáng)制瀏覽器使用 HTTPS 連接

HSTS – HTTP Strict Transport Security,HTTP嚴(yán)格傳輸安全。它允許一個(gè) HTTPS 網(wǎng)站要求瀏覽器總是通過 HTTPS 來訪問,這使得攻擊者在用戶與服務(wù)器通訊過程中攔截、篡改信息以及冒充身份變得更為困難。

只要在 Nginx 配置文件加上以下頭信息就可以了:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;

max-age:設(shè)置單位時(shí)間內(nèi)強(qiáng)制使用 HTTPS 連接

includeSubDomains:可選,所有子域同時(shí)生效

preload:可選,非規(guī)范值,用于定義使用『HSTS 預(yù)加載列表』

always:可選,保證所有響應(yīng)都發(fā)送此響應(yīng)頭,包括各種內(nèi)置錯(cuò)誤響應(yīng)

當(dāng)用戶進(jìn)行 HTTPS 連接的時(shí)候,服務(wù)器會(huì)發(fā)送一個(gè)Strict-Transport-Security響應(yīng)頭:

瀏覽器在獲取該響應(yīng)頭后,在max-age的時(shí)間內(nèi),如果遇到 HTTP 連接,就會(huì)通過 307 跳轉(zhuǎn)強(qiáng)制使用 HTTPS 進(jìn)行連接,并忽略其它的跳轉(zhuǎn)設(shè)置(如 301 重定向跳轉(zhuǎn)):

307 跳轉(zhuǎn)Non-Authoritative-Reason響應(yīng)頭

加強(qiáng) HTTPS 安全性

HTTPS 基礎(chǔ)配置采取的默認(rèn)加密算法是 SHA-1,這個(gè)算法非常脆弱,安全性在逐年降低,在 2014 年的時(shí)候,Google 官方博客就宣布在 Chrome 瀏覽器中逐漸降低 SHA-1 證書的安全指示,會(huì)從 2015 年起使用 SHA-2 簽名的證書,可參閱Rabbit_Run在 2014 年發(fā)表的文章:《為什么Google急著殺死加密算法SHA-1》

為此,主流的 HTTPS 配置方案應(yīng)該避免 SHA-1,可以使用迪菲-赫爾曼密鑰交換(D-H,Diffie–Hellman key exchange)方案。

首先在目錄/etc/ssl/certs運(yùn)行以下代碼生成dhparam.pem文件:

openssl dhparam -out dhparam.pem 2048

然后加入 Nginx 配置:

#優(yōu)先采取服務(wù)器算法
ssl_prefer_server_ciphers on;
#使用DH文件
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#定義算法
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
#減少點(diǎn)擊劫持
add_header X-Frame-Options DENY;
#禁止服務(wù)器自動(dòng)解析資源類型
add_header X-Content-Type-Options nosniff;
#防XSS攻擊
add_header X-Xss-Protection 1;

優(yōu)化后的綜合配置

worker_processes auto;

http {

    #配置共享會(huì)話緩存大小,視站點(diǎn)訪問情況設(shè)定
    ssl_session_cache   shared:SSL:10m;
    #配置會(huì)話超時(shí)時(shí)間
    ssl_session_timeout 10m;

    server {
        listen              443 ssl;
        server_name         www.example.com;
        
        #設(shè)置長(zhǎng)連接
        keepalive_timeout   70;
        
        #HSTS策略
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
        
        #證書文件
        ssl_certificate     www.example.com.crt;
        #私鑰文件
        ssl_certificate_key www.example.com.key; 
        
        #優(yōu)先采取服務(wù)器算法
        ssl_prefer_server_ciphers on;
        #使用DH文件
        ssl_dhparam /etc/ssl/certs/dhparam.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #定義算法
        ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
        #減少點(diǎn)擊劫持
        add_header X-Frame-Options DENY;
        #禁止服務(wù)器自動(dòng)解析資源類型
        add_header X-Content-Type-Options nosniff;
        #防XSS攻擊
        add_header X-Xss-Protection 1;
        #...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/40465.html

相關(guān)文章

  • nginx運(yùn)維基礎(chǔ)(8)】配置支持http2協(xié)議

    摘要:了解協(xié)議的主要目標(biāo)是改進(jìn)傳輸性能,實(shí)現(xiàn)低延遲和高吞吐量。從另一方面看,的高層協(xié)議語(yǔ)義并不會(huì)因?yàn)檫@次版本升級(jí)而受影響。所有首部值,以及它們的使用場(chǎng)景都不會(huì)變。不用為了利用的好處而修改標(biāo)記。服務(wù)器必須運(yùn)行協(xié)議,但大部分用戶都不會(huì)因此而受到影響。 了解http2協(xié)議 HTTP 2.0 的主要目標(biāo)是改進(jìn)傳輸性能,實(shí)現(xiàn)低延遲和高吞吐量。從另一方面看,HTTP 的高層協(xié)議語(yǔ)義并不會(huì)因?yàn)檫@次版本升...

    IamDLY 評(píng)論0 收藏0
  • nginx運(yùn)維基礎(chǔ)(4)】Nginx的日志管理(日志格式與定時(shí)分割日志)

    摘要:日志主要分為兩種訪問日志和錯(cuò)誤日志。請(qǐng)求過程中,的響應(yīng)時(shí)間。正確的關(guān)閉錯(cuò)誤日志記錄功能的方法如下上面表示將存儲(chǔ)日志的路徑設(shè)置為垃圾桶。日志分割新版本支持自動(dòng)切割并壓縮日志,日志文件名如下默認(rèn)是每天都會(huì)產(chǎn)生一個(gè)文件。 Nginx日志主要分為兩種:訪問日志和錯(cuò)誤日志。日志開關(guān)在Nginx配置文件(一般在server段來配置)中設(shè)置,兩種日志都可以選擇性關(guān)閉,默認(rèn)都是打開的。 訪問日志acc...

    qiangdada 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<