使用nginx轉換HTTPS流量

背景

公司賣了一個產品給甲方,甲方要求部署後,要以https來訪問。甲方提供了證書資訊和私鑰,記錄一下部署過程。

實現

1、思路
在我們產品伺服器上部署一個nginx、證書資訊也放在這個伺服器上。外界的https經過nginx變成http協議,大致思路如下:
file

2、安裝過程
(1)上傳證書、私鑰到伺服器

  • 證書server.pem放於/hand/certificate/server.pem
  • 私鑰server.key放於/hand/certificate/server.key;

(2)配置nginx.conf文件

events {
    
}

http {
    server {
    	listen 443 ssl;
    	server_name 隨意寫;
    	ssl_certificate /app/test.crt;
    	ssl_certificate_key /app/test.key;
    
    	location / {
    		proxy_pass //項目真實訪問地址/;
    		proxy_redirect //項目真實訪問地址/; //外網訪問的地址/;
		}
	} 
}

ssl_certificatessl_certificate_key配置的地址是以後nginx容器內部的證書、私鑰地址;

proxy_redirect是配置項目中如果有重定向請求的話,仍然進行轉發;

(3)起一個nginx容器

docker run -v /nginx/nginx.conf:/etc/nginx/nginx.conf:ro -p 443:433 -v /hand/certificate/server.pem:/app/test.crt -v /hand/certificate/server.key:/app/test.key -d --restart=always nginx

--restart=always防止伺服器重啟後,忘記開這個了

要確保把外界的證書路徑給映射到容器中

至於.ctr.pem.key後綴應該是無所謂的

參考資訊

//aotu.io/notes/2016/08/16/nginx-https/index.html
//www.ruanyifeng.com/blog/2014/02/ssl_tls.html
//github.com/ljianshu/Blog/issues/50
//cattail.me/tech/2015/11/30/how-https-works.html

未完待續~

為什麼https能保證安全?stl?

一個https連接過程是什麼樣子的?

為什麼需要證書?

原部落格地址

Tags: