1.簡介
什麼是Https?簡單地說就是http的一個安全版本。HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
2.證書申請
可以在阿里雲或騰訊雲上申請一個SSl證書(如果是個人用戶-都有個人單域名免費版),
如果企業還是在權威機構,一般需要購買證書。一般申請了證書需要審覈完畢後就可以下載證書文件了。
以阿里云爲例
3.安裝SSL模塊
使用Nginx配置SSL證書需要模板支持。若未安裝請參考:傳送門
4.配置Nginx
接下來我們配置Nginx.conf,將下載的證書和Key的所在位置配置到配置文件上。具體配置如下
創建配置 示例目錄:/home/nginx/conf/nginx_ssl.conf
#定義Nginx運行的用戶和用戶組(默認不添加,啓動後顯示-nobody)
user root;
worker_processes 1; # Nginx 進程數,一般設置爲和 CPU 核數一樣
events {
worker_connections 1024; # 每個進程允許最大併發數
}
http {
default_type application/octet-stream; # 默認文件類型
sendfile on; # 開啓高效傳輸模式
keepalive_timeout 65; # 保持連接的時間,也叫超時時間,單位秒
charset utf-8; # 設置編碼格式
server {
listen 443 ssl; #監聽443端口(https默認端口)
server_name www.xxx.com; #填寫綁定證書的域名
ssl_certificate /home/xxx/xxx.crt; #填寫你的證書所在的位置
ssl_certificate_key /home/xxx/xxx.key; #填寫你的key所在的位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #協議配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #套件配置
ssl_prefer_server_ciphers on;
location / {
root /home/xxx/ ; #填寫你的你的站點目錄
index index.html index.htm;
}
}
}
5.重啓服務器
下面我們進行服務器的重啓,在重啓之前先檢驗配置文件是否有錯誤
cd /usr/local/nginx/sbin
#檢測配置
nginx -t -c /home/nginx/conf/nginx_statis.conf
若沒有報錯則啓動
./nginx -c /home/nginx/conf/nginx_ssl.conf
訪問地址示例:https://www.xxx.top
6.可選配置
6.1 HTTP請求轉發到HTTPS
添加如下配置到nginx配置,這樣訪問 http也會默認跳轉到https了
server {
listen 80;
server_name www.xxx.com;#填寫綁定證書的域名
rewrite ^ https://$http_host$request_uri? permanent; # 將http轉到https
}
重啓指定配置命令
./nginx -s reload -c /home/nginx/conf/nginx_ssl.conf
7.常見錯誤
7.1unknown directive ssl
出現原因以及解決方案, 詳見:傳送門