標籤:ram 記憶體 -- alt medium blank 抽象 操作 返回
HTTPS簡單介紹HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單來講就是HTTP的安全版。即HTTP下增加SSL層,HTTPS的安全基礎是SSL。因此加密的具體內容就須要SSL。它是一個URI scheme(抽象標識符體系),句法類同http:體系,用於安全的http傳輸資料。https使用的預設port是443.
ssl認證認證類型簡單介紹要設定安全server,使用公用鑰建立一對公私密金鑰對。大多數情況下。發送認證請求(包含自己的公開金鑰),你的公司證明材料以及費用到一個憑證授權單位(CA).CA驗證認證請求及您的身份。然後將認證返回給您的安全server。
可是內網實現一個server端和client傳輸內容的加密,能夠自己給自己頒發認證。僅僅須要忽略掉瀏覽器不信任的警報就可以!
由CA簽署的認證為您的server提供兩個重要的功能:
- 瀏覽器會自己主動識別認證而且在不提示使用者的情況下同意建立一個安全連線
- 當一個CA產生一個簽署過的認證,它為提供網頁給瀏覽器的組織提供身份擔保。
- 多數支援ssl的webserver都有一個CA列表,它們的認證會被自己主動接受。當一個瀏覽器遇到一個其授權CA並不在列表中的認證,瀏覽器將詢問使用者是否接受或拒絕串連
產生ssl認證Html代碼
- openssl genrsa -des3 -out wangzhengyi.key 2048
Html代碼
- openssl req -new -key wangzhengyi.key -out wangzhengyi.csr
建立一個自己簽署的CA認證Html代碼
- openssl req -new -x509 -days 3650 -key wangzhengyi_nopass.key -out wangzhengyi.crt
搭建https虛擬機器主機虛擬機器主機設定檔Html代碼
- upstream sslfpm {
- server 127.0.0.1:9000 weight=10 max_fails=3 fail_timeout=20s;
- }
-
- server {
- listen 192.168.1.*:443;
- server_name 192.168.1.*;
-
- #為一個server開啟ssl支援
- ssl on;
- #為虛擬機器主機指定pem格式的認證檔案
- ssl_certificate /home/wangzhengyi/ssl/wangzhengyi.crt;
- #為虛擬機器主機指定私密金鑰檔案
- ssl_certificate_key /home/wangzhengyi/ssl/wangzhengyi_nopass.key;
- #client可以反覆使用儲存在緩衝中的會話參數時間
- ssl_session_timeout 5m;
- #指定使用的ssl協議
- ssl_protocols SSLv3 TLSv1;
- #指定許可的password描寫敘述
- ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
- #SSLv3和TLSv1協議的伺服器password需求優先順序高於clientpassword
- ssl_prefer_server_ciphers on;
-
- location / {
- root /home/wangzhengyi/ssl/;
- autoindex on;
- autoindex_exact_size off;
- autoindex_localtime on;
- }
- # redirect server error pages to the static page /50x.html
- #
- error_page 500 502 503 504 /50x.html;
- error_page 404 /404.html;
-
- location = /50x.html {
- root /usr/share/nginx/www;
- }
- location = /404.html {
- root /usr/share/nginx/www;
- }
-
- # proxy the PHP scripts to fpm
- location ~ \.php$ {
- access_log /var/log/nginx/ssl/ssl.access.log main;
- error_log /var/log/nginx/ssl/ssl.error.log;
- root /home/wangzhengyi/ssl/;
- fastcgi_param HTTPS on;
- include /etc/nginx/fastcgi_params;
- fastcgi_pass sslfpm;
- }
- }
HTTPSserver最佳化方法SSL操作須要消耗CPU資源。所以在多處理器的系統,須要啟動多個背景工作處理序,並且數量須要不少於可用CPU的個數。最消耗CPU資源的SSL操作是SSL握手。有兩種方法能夠將每一個client的握手運算元量降到最低:
- 保持client長串連。在一個SSL串連發送多個請求
- 在並發的串連或者興許的串連中重用SSL會話參數,這樣能夠避免SSL握手操作。
會話緩衝用於儲存SSL會話,這些緩衝在背景工作處理序間共用,能夠使用
ssl_session_cache指令進行配置。
1M緩衝能夠存放約4000個會話。預設的緩衝逾時時間是5m。能夠使用ssl_session_timeout加大它。
ssl_session_cache指令Html代碼
- 文法:ssl_session_cache off|none|builtin:size|shared:name:size
- 使用環境:main,server
- 緩衝類型:
- off -- 硬關閉,nginx明白告訴client這個會話不可重用
- none -- 軟關閉,nginx告訴client會話可以被重用,可是nginx實際上不會重用它們
- bultin -- openssl內建緩衝,僅可用於一個背景工作處理序.可能導致記憶體片段
- shared -- 全部背景工作處理序的共用快取。(1)緩衝大小用位元組數指定(2)每一個緩衝必須擁有自己的名稱(3)同名的緩衝可用於多個虛擬機器主機
最佳化示範範例Html代碼
- #最佳化ssl服務
- ssl_session_cache shared:wzy:10m;
- #client可以反覆使用儲存在緩衝中的會話參數時間
- ssl_session_timeout 10m;
參考連結http://nginx.org/cn/docs/http/configuring_https_servers.html
nginx搭建httpsserver