使用Nginx配置客戶端實現SSL雙向認證

2021-08-22 01:19:48 字數 1468 閱讀 1259

1. ca 與自簽名

建立相關目錄

#mkdir ssl

#cd ssl

製作 ca 私鑰
#openssl genrsa -out ca.key 2048
製作 ca 根證書(公鑰)
#openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
2. 伺服器端證書

製作服務端私鑰

#openssl genrsa -out server.pem 1024

#openssl rsa -in server.pem -out server.key

生成簽發請求
#openssl req -new -key server.pem -out server.csr
用 ca 簽發
#openssl x509 -req -sha256 -in server.csr -ca ca.crt -cakey ca.key -cacreateserial -days 3650 -out server.crt
3. 客戶端證書

和服務端證書製作一樣

4. 配置nginx的nginx.conf檔案

至此需要的證書都弄好了,現在開始配置nginx。

部分主要配置:

server

server

}

配置好後就就重新reload nginx。

5. 請求驗證

瀏覽器驗證

由於是雙向認證,直接通過瀏覽器訪問https位址是被告知400 bad request(no required ssl certificate was sent)的,需要在本機安裝client證書。

windows上安裝的證書需要pfx格式,也叫p12格式,生成方式如下:

openssl pkcs12 -export -inkey ssl/client.key -in ssl/client.crt -out ssl/client.pfx   #執行後會提示輸入密碼(用於安裝使用的)
然後考到windows中雙擊即可進行安裝,安裝時會提示輸入生成證書時設定的密碼。

安裝成功後,重啟瀏覽器輸入**訪問,瀏覽器可能會提示你選擇證書,選擇剛才安裝的那個證書即可。

此時有些瀏覽器會提示使用者該證書不受信任,位址不安全之類,這是因為我們的server證書是我們自己頒發的,而非真正的權威ca機構頒布,忽略它既可。

6. 驗證

當輸入的路徑為 並且信任證書訪問nginx的首頁成功則說明配置成功!

注:文中的所有路徑都是對應的自己所建立的證書所在的路徑(sslkey裡的路徑以及alias和passwd),本文所用的nginx版本為1.15.2,jdk版本為1.8.

使用tcp select實現客戶端與客戶端的通訊

使用多路復用實現客戶端與客戶端進行通訊 原理 客戶端只要一連上伺服器,立馬給伺服器傳送使用者名稱,然後在服務端將newsocketfd 存放在同乙個結構體中,客戶端先給伺服器傳送資料,然後通過伺服器 給客戶端。伺服器先會查詢對應名字的 newsocketfd 然後向該 newsocketfd 中寫入...

客戶端配置 Git客戶端基本配置

git 能夠識別的配置項被分為了兩大類 客戶端和伺服器端,其中大部分基於你個人工作偏好,屬於客戶端配置。儘管有數不盡的選項,但我只闡述 其中經常使用或者會對你的工作流產生巨大影響的選項,如果你想觀察你當前的 git 能識別的選項列表,請執行 git config helpgit config的手冊頁...

mysql客戶端配置 MySQL客戶端配置和使用

安裝mysql sudo apt get install mysql server 這個應該很簡單了,而且我覺得大家在安裝方面也沒什麼太大問題,所以也就不多說了,下面我們來講講配置。配置mysql 注意,在ubuntu下mysql預設是只允許本地訪問的,如果你要其他機器也能夠訪問的話,那麼需要改變 ...