一、什麼是SSL證書
SL證書全程:SSL安全通道(Secure socket layer(SSL)。該安全協議主要用來提供對用戶和服務器的認證;對傳送的數據進行加密和隱藏;確保數據在傳送中不被改變,即數據的完整性,現已成爲該領域中全球化的標準。
SSL證書是數字證書的一種,類似於駕駛證、護照和營業執照的電子副本。因爲配置在服務器上,也稱爲SSL服務器證書。
SSL 證書就是遵守 SSL協議,由受信任的數字證書頒發機構CA(如VeriSign),在驗證服務器身份後頒發,具有服務器身份驗證和數據傳輸加密功能。
TLS版本號以及相關說明
安全傳輸層協議(TLS)用於在兩個通信應用程序之間提供保密性和數據完整性。該協議由兩層組成: TLS 記錄協議(TLS Record)和 TLS 握手協議(TLS Handshake)。
二、配置服務器
1、獲取證書
通過證書頒發機構獲取,也就是找賣證書的就可以了
2、安裝服務器證書
將證書文件,上傳至Nginx安裝目錄的conf目錄下,我的安裝目錄是
/usr/local/nginx/conf/
爲了方便管理證書我在conf目錄下創建了證書的統一管理目錄https_ssl目錄,我將所有證書
存放在了conf/https_ssl/下。
同時爲了證書的可識別性,可以爲證書改名
mv server.key aaaaaa.key
mv server.pem aaaaaa.pem
Nginx虛擬主機配置
server {
listen 443; #修改端口號爲443,如果有防火牆記得開啓防火牆
server_name aaaaaaa; #域名我隱藏了,不要在意aaaaaa
root /data/www/www.test.com;
index index.php index.html index.htm;
access_log /data/wwwlogs/rewrite.log access;
ssl on; #SSL功能開啓,採用SSL通信協議
ssl_certificate https_ssl/server.pem; #證書文件
ssl_certificate_key https_ssl/server.key; #私鑰文件
ssl_session_timeout 5m; 客戶端可以重用會話緩存中ssl參數的過期時間,內網系統默認5分鐘太短了,可以設成30m即30分鐘甚至4h
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #支持的SSL協議標準
ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL; 選擇加密套件
ssl_prefer_server_ciphers on; #設置協商加密算法時,優先使用我們服務端的加密套件,而不是客戶端瀏覽器的加密套件
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
}
測試訪問,https:aaaaa 可以看到有綠色的鎖,說明已經配置成功了,根據瀏覽器的查看證書的方式
也不同,我使用的是火狐
在實際使用中https比http的訪問方式,開銷要大