https簡介
https(hypertext transfer protocol over secure socket layer),是以安全為目標的http通道,簡單來講就是http的安全版。即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。
它是一個uri scheme(抽象識別體系統),句法類同http:體系,用於安全的http資料傳輸。 https使用的預設連接埠是443.
ssl憑證
#憑證類型簡介
要設定安全伺服器,使用公共鑰創建一對公私鑰對。大多數情況下,發送證書請求(包括自己的公鑰),你的公司證明材料以及費用到一個證書頒發機構(ca).ca驗證證書請求及您的身份,然後將證書返回給您的安全伺服器。
但是內網實作一個伺服器端和客戶端傳輸內容的加密,可以自己給自己頒發證書,只需要忽略掉瀏覽器不信任的警報!
由ca簽署的憑證為您的伺服器提供兩個重要的功能:
#瀏覽器會自動識別憑證並且在不提示使用者的情況下允許創建一個安全連線
當一個ca產生一個簽署過的證書,它為提供網頁給瀏覽器的組織提供身分擔保。
多數支援ssl的web伺服器都有一個ca列表,它們的憑證會被自動接受。當一個瀏覽器遇到一個其授權ca並不在列表中的證書,瀏覽器會詢問使用者是否接受或拒絕連接
產生ssl證書
openssl genrsa -des3 -out wangzhengyi.key 2048
openssl req -new -key wangzhengyi.key -out wangzhengyi.csr
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; #客户端能够重复使用存储在缓存中的会话参数时间 ssl_session_timeout 5m; #指定使用的ssl协议 ssl_protocols sslv3 tlsv1; #指定许可的密码描述 ssl_ciphers all:!adh:!export56:rc4+rsa:+high:+medium:+low:+sslv2:+exp; #sslv3和tlsv1协议的服务器密码需求优先级高于客户端密码 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; } }
以上是Nginx建置https伺服器實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!