日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

firefox+linux+nginx搭建server与client通过证书双向认证环境

發(fā)布時間:2023/11/27 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 firefox+linux+nginx搭建server与client通过证书双向认证环境 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  項(xiàng)目中需要搭建一個server和client基于證書的雙向認(rèn)證環(huán)境。由我來做,我也不會。

  經(jīng)過一晚上的研究,基本摸清了(知其然不知其所以然)。做下筆記。

基本環(huán)境:

  1.安裝nginx。

  2.安裝openssl。

生成證書:

  首先建立一個工作目錄,這里以我的工作目錄為例。(/home/myca/),然后執(zhí)行如下命令。建立生成證書的路徑文件結(jié)構(gòu),這是由openssl的默認(rèn)配置文件決定的。你可以修改配置。

mkdir demoCA
cd demoCA
touch ./{serial,index.txt}
echo '01'  > serial
mkdir ./newcerts
cd ..

 

  拷貝配置文件到工作目錄。當(dāng)然前綴路徑要換成你自己的。

cp /usr/local/ssl/openssl.cnf   ./

  

  修改配置文件。編輯openssl.cnf中的一些選項(xiàng)。

  unique_subject? = no ? (這樣一個CA可以同時簽多張證書)

  countryName = optional(把這些參數(shù)的匹配規(guī)則改為可選)

  stateOrProvinceName = optional

  organizationName? = optional

  organizationalUnitName? = optional

?

  現(xiàn)在我們來生成自己的CA。

openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

  生成會話會讓你填入一些參數(shù),紅線標(biāo)出的是要輸入的,根據(jù)實(shí)際情況填寫。執(zhí)行完會發(fā)現(xiàn)工作目錄下會有ca.crt? ca.key兩個文件。截圖如下:

  

  接下來生成server端證書。

  首先生成server端私鑰。執(zhí)行后會要求輸入解析私鑰文件的密碼,根據(jù)個人喜好設(shè)置。生成server.key。

openssl genrsa -des3 -out server.key 1024

  生成證書請求。生成會話會提示輸入一些請求信息,成功后生成server.csr。

openssl req -new -key server.key -out server.csr -config openssl.cnf

  

  注意紫色線條標(biāo)出的一行,這行輸入server端的域名(https://192.168.68.173:8080是我的服務(wù)器地址)。否則簽發(fā)的證書會被瀏覽器視為不是本站點(diǎn)的證書。其他根據(jù)情況。

  

  現(xiàn)在用生成的CA給證書請求(server.csr)簽發(fā)證書。根據(jù)提示輸入相關(guān)密碼(之前設(shè)置好的)和y(yes),成功后生成證書server.crt

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

  

  到這里,我們已經(jīng)可以做單項(xiàng)認(rèn)證了,來試試。

  配置nginx:vi /usr/local/nginx/conf/nginx.conf修改配置如下圖(注意證書和CA的路徑是我的工程路徑):

  

  保存后啟動nginx,會要求輸入server端私鑰文件解析密碼,輸入生成時設(shè)置的密碼。

  在windows下打開firefox輸入https://192.168.68.173:8080回車。

  

  這說明nginx已經(jīng)向?yàn)g覽器發(fā)送了自己的證書,但是這個證書不受信任。別急,現(xiàn)在我們把之前自己的CA導(dǎo)入瀏覽器。

  打開 選項(xiàng)->高級->查看證書->證書機(jī)構(gòu)->導(dǎo)入。先擇CA后根據(jù)提示導(dǎo)入證書。成功后如下:

  

  再次輸入https://192.168.68.173:8080回車。

  

  看見中間那行提示了嗎?中式英語翻譯過來就是-->沒有要求的ssl證書來發(fā)送。也就是說,client已經(jīng)成功認(rèn)證了server端的證書,但是我們配置nginx為雙向認(rèn)證,所以nginx要求瀏覽器出示證書,而瀏覽器沒有證書。

  說明單項(xiàng)認(rèn)證已經(jīng)OK,現(xiàn)在為client生成證書。

  首先生成client端私鑰,執(zhí)行后會要求輸入解析私鑰文件的密碼,根據(jù)個人喜好設(shè)置。生成client.key。

openssl genrsa -des3 -out client.key 1024

?

  生成證書請求。生成會話會提示輸入一些請求信息,成功后生成client.csr。

openssl req -new -key client.key -out client.csr -config openssl.cnf

  

  現(xiàn)在用之前生成的CA給證書請求(client.csr)簽發(fā)證書。根據(jù)提示輸入相關(guān)密碼(之前設(shè)置好的)和y(yes),成功后生成證書client.crt

openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

?

  firefox要求客戶端的證書格式是p12格式,所以我們把client.crt轉(zhuǎn)化為client.p12格式

openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12

?  轉(zhuǎn)pem格式

cat ca.crt ca.key > ca.pem
cat server.crt server.key > server.pem
cat client.crt client.key > client.pem

?

  最后一步,把client.p12導(dǎo)入瀏覽器。

  打開 選項(xiàng)->高級->查看證書->您的證書->導(dǎo)入。根據(jù)提示導(dǎo)入,導(dǎo)入成功后如圖:

  

  輸入https://192.168.68.173:8080回車。

  

   OK!!!

?

轉(zhuǎn)載于:https://www.cnblogs.com/acool/p/4933325.html

總結(jié)

以上是生活随笔為你收集整理的firefox+linux+nginx搭建server与client通过证书双向认证环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。