国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

mingzhong / 2687人閱讀

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

關(guān)于 SSL 證書

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

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

申請免費證書

阿里云控制臺-產(chǎn)品與服務(wù)-安全(云盾)-SSL證書,點擊購買證書,選擇免費型DV SSL->補全申請簽發(fā)證書,然后下載證書。

配置證書

進入nginx配置目錄,增加certs/文件夾,把剛剛下載的兩個文件上傳到certs/文件夾中。

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

server {
    listen 443;
    server_name bjubi.com; // 你的域名
    ssl on;
    root /var/www/bjubi.com; // 前臺文件存放文件夾,可改成別的
    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的域名請求轉(zhuǎn)成https
}
HTTPS服務(wù)器優(yōu)化 減少 CPU 運算量

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

激活keepalive長連接,一個連接發(fā)送更多個請求

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

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

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

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

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

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

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

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

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

includeSubDomains:可選,所有子域同時生效

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

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

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

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

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

加強 HTTPS 安全性

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

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

首先在目錄/etc/ssl/certs運行以下代碼生成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";
#減少點擊劫持
add_header X-Frame-Options DENY;
#禁止服務(wù)器自動解析資源類型
add_header X-Content-Type-Options nosniff;
#防XSS攻擊
add_header X-Xss-Protection 1;

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

worker_processes auto;

http {

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

    server {
        listen              443 ssl;
        server_name         www.example.com;
        
        #設(shè)置長連接
        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";
        #減少點擊劫持
        add_header X-Frame-Options DENY;
        #禁止服務(wù)器自動解析資源類型
        add_header X-Content-Type-Options nosniff;
        #防XSS攻擊
        add_header X-Xss-Protection 1;
        #...

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/40465.html

相關(guān)文章

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

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

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

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

    qiangdada 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<