<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 關于 SSL 證書 有關 SSL 的介紹可以參閱阮一峰老師的[《SSL/TLS協議運行機制的概述》](http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html)。 SSL 證書主要有兩個功能:**加密**和**身份證明**,通常需要購買,也有免費的,本文使用阿里云的一年免費期的ssl證書。 ## 申請免費證書 阿里云控制臺-產品與服務-安全(云盾)-SSL證書,點擊購買證書,選擇免費型DV SSL->補全申請簽發證書,然后下載證書。 ## 配置證書 1. 進入nginx配置目錄,增加certs/文件夾,把剛剛下載的兩個文件上傳到certs/文件夾中。 2. 對443端口和80端口進行監聽,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的域名請求轉成https } ~~~ ## HTTPS服務器優化 ### 減少 CPU 運算量 SSL 的運行計算需要消耗額外的 CPU 資源,一般多核處理器系統會運行多個工作進程([worker processes](http://nginx.org/en/docs/ngx_core_module.html#worker_processes)),進程的數量不會少于可用的 CPU 核數。SSL 通訊過程中『握手』階段的運算最占用 CPU 資源,有兩個方法可以減少每臺客戶端的運算量: * **激活[keepalive](http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout)長連接,一個連接發送更多個請求** * **復用 SSL 會話參數,在并行并發的連接數中避免進行多次 SSL『握手』** 這些會話會存儲在一個 SSL 會話緩存里面,通過命令[ssl\_session\_cache](https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_cache)配置,可以使緩存在機器間共享,然后利用客戶端在『握手』階段使用的`seesion id`去查詢服務端的 session cathe(如果服務端設置有的話),簡化『握手』階段。 1M 的會話緩存大概包含 4000 個會話,默認的緩存超時時間為 5 分鐘,可以通過使用[ssl\_session\_timeout](https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_timeout)命令設置緩存超時時間。下面是一個擁有 10M 共享會話緩存的多核系統優化配置例子: ~~~ http { #配置共享會話緩存大小 ssl_session_cache shared:SSL:10m; #配置會話超時時間 ssl_session_timeout 10m; server { #... #設置長連接 keepalive_timeout 70; #... ~~~ ### 使用 HSTS 策略強制瀏覽器使用 HTTPS 連接 HSTS – HTTP Strict Transport Security,HTTP嚴格傳輸安全。它允許一個 HTTPS 網站要求瀏覽器總是通過 HTTPS 來訪問,這使得攻擊者在用戶與服務器通訊過程中攔截、篡改信息以及冒充身份變得更為困難。 只要在 Nginx 配置文件加上以下頭信息就可以了: add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always; * max-age:設置單位時間內強制使用 HTTPS 連接 * includeSubDomains:可選,所有子域同時生效 * preload:可選,*非規范值*,用于定義使用『HSTS 預加載列表』 * always:可選,保證所有響應都發送此響應頭,包括各種內置錯誤響應 當用戶進行 HTTPS 連接的時候,服務器會發送一個**Strict-Transport-Security**響應頭: ![](https://box.kancloud.cn/2e229e47756529acfd3ac1ab0ebd576f_986x426.png) 瀏覽器在獲取該響應頭后,在`max-age`的時間內,如果遇到 HTTP 連接,就會通過 307 跳轉強制使用 HTTPS 進行連接,并忽略其它的跳轉設置(如 301 重定向跳轉): ![](https://box.kancloud.cn/9c4b546d46e9358990413ab9343c41b6_1280x1030.png) 307 跳轉**Non-Authoritative-Reason**響應頭 ![](https://box.kancloud.cn/24675f5ac4ecda01ba3c09b3be894bc9_576x312.png) ### 加強 HTTPS 安全性 HTTPS 基礎配置采取的默認加密算法是 SHA-1,這個算法非常脆弱,安全性在逐年降低,在 2014 年的時候,**Google 官方博客就宣布在 Chrome 瀏覽器中逐漸降低 SHA-1 證書的安全指示,會從 2015 年起使用 SHA-2 簽名的證書**,可參閱[Rabbit\_Run](http://www.freebuf.com/author/rabbit_run)在 2014 年發表的文章:[《為什么Google急著殺死加密算法SHA-1》](http://www.freebuf.com/news/topnews/44288.html) 為此,主流的 HTTPS 配置方案應該避免 SHA-1,可以使用[迪菲-赫爾曼密鑰交換(D-H,Diffie–Hellman key exchange)](https://zh.wikipedia.org/wiki/%E8%BF%AA%E8%8F%B2-%E8%B5%AB%E7%88%BE%E6%9B%BC%E5%AF%86%E9%91%B0%E4%BA%A4%E6%8F%9B)方案。 首先在目錄`/etc/ssl/certs`運行以下代碼生成`dhparam.pem`文件: openssl dhparam -out dhparam.pem 2048 然后加入 Nginx 配置: ~~~ #優先采取服務器算法 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; #禁止服務器自動解析資源類型 add_header X-Content-Type-Options nosniff; #防XSS攻擊 add_header X-Xss-Protection 1; ~~~ **優化后的綜合配置** ~~~ worker_processes auto; http { #配置共享會話緩存大小,視站點訪問情況設定 ssl_session_cache shared:SSL:10m; #配置會話超時時間 ssl_session_timeout 10m; server { listen 443 ssl; server_name www.example.com; #設置長連接 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; #優先采取服務器算法 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; #禁止服務器自動解析資源類型 add_header X-Content-Type-Options nosniff; #防XSS攻擊 add_header X-Xss-Protection 1; #... ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看