Nginx ssl 雙向認證 正向代理 https

Nginx之SSL雙向認證的正向代理設定實例

陳膺傑 2020/12/30 18:05:25
633

1. 正向代理與反向代理

正向代理與反向代理都是代理伺服器,所處的位置都是在於客戶端與真實伺服器之間,所做的事情也都是把客戶端的請求轉發給伺服器,再把伺服器的響應轉發給客戶端,但是二者之間還是有一定的差異的。

 

1.1 正向代理伺服器

是客戶端的代理,幫助客戶端存取無法直接訪問的目標伺服器資源,客戶端可明確知道要訪問的目標網址,通常架設在客戶端,主要是用來解決訪問上限制的問題。

 

1.2 反向代理伺服器

是伺服器端的代理,幫助伺服器做負載均衡、安全防護,客戶端無法得知真實伺服器所在,通常架設在伺服器端,主要是用來做負載均衡及安全防護。

 

 

2. 準備自簽測試憑證

2.1 下載OpenSSL工具

https://www.openssl.org/

 

2.2 OpenSSL設定
2.2.1 建立產生憑證所需目錄

◎ 請於安裝完成後之bin目錄下建立目錄demoCA

◎ 請於目錄demoCA建立目錄newcerts

◎ 請於目錄demoCA下建立2個檔案index.txt和serial

◎ 請編輯檔案serial,輸入自簽憑證之初始序號(請自編流水號,Ex.代號+yyyymmdd)

◎ 每次以根憑證簽發成功後,序號會自動+1,並記錄至index.txt和newcerts

 

2.3 建立CA根憑證

● -subj的參數請自行調整為單位適合的名稱

     ◎ C:國家或地區名稱

     ◎ ST:州/省

     ◎ L:州/省

     ◎ O:組織

     ◎ OU:組織單位

     ◎ CN:通用名稱

● 根憑證金鑰長度為4096,效期為10年

語法如下:

openssl req -x509 -subj "/C=TW/ST=Taipei/L=Taipei/O=TPI/OU=TPI/CN=Thinkpower Root CA" -new -sha256 -newkey rsa:4096 -keyout ThinkpowerCA.key -out ThinkpowerCA.cer -days 3650

 

2.4 建立伺服器憑證與憑證請求檔

● -subj的參數請自行調整為單位適合的名稱,欄位說明請參考【2.3建立CA根憑證】

● 語法如下:

openssl genrsa -out ThinkpowerServer.key 2048

openssl req -subj "/C=TW/ST=Taipei/L=Taipei/O=TPI/OU=TPI/CN=Thinkpower Server" -new -sha256 -key ThinkpowerServer.key -out ThinkpowerServer.csr

 

2.5 簽發自我憑證

● 語法如下:

openssl x509 -req -in ThinkpowerServer.csr -CA ThinkpowerCA.cer -CAkey ThinkpowerCA.key -CAcreateserial -out ThinkpowerServer.cer -days 730 -sha256

 

● 顯示憑證用途,語法如下:

openssl x509 -purpose -in ThinkpowerServer.cer -inform PEM