真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么使用Nginx實現(xiàn)HTTPS雙向驗證

這篇文章主要介紹了怎么使用Nginx實現(xiàn)HTTPS雙向驗證的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么使用Nginx實現(xiàn)HTTPS雙向驗證文章都會有所收獲,下面我們一起來看看吧。

從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。成都創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。

單向驗證與雙向驗證的區(qū)別:

單向驗證: 指客戶端驗證服務(wù)器端證書,服務(wù)器并不需要驗證客戶端證書。

雙向驗證:指客戶端驗證服務(wù)器端證書,而服務(wù)器也需要通過ca的公鑰證書來驗證客戶端證書。

詳細(xì)的握手過程:

單向驗證

瀏覽器發(fā)送一個連接請求給安全服務(wù)器。

1、服務(wù)器將自己的證書,以及同證書相關(guān)的信息發(fā)送給客戶瀏覽器。

2、客戶瀏覽器檢查服務(wù)器送過來的證書是否是由自己信賴的ca中心所簽發(fā)的。如果是,就繼續(xù)執(zhí)行協(xié)議;如果不是,客戶瀏覽器就給客戶一個警告消息:警告客戶這個證書不是可以信賴的詢問客戶是否需要繼續(xù)。

3、接著客戶瀏覽器比較證書里的消息,例如域名和公鑰,與服務(wù)器剛剛發(fā)送的相關(guān)消息是否一致,如果是一致的,客戶瀏覽器認(rèn)可這個服務(wù)器的合法身份。

4、瀏覽器隨機(jī)產(chǎn)生一個用于后面通訊的“通話密鑰”,然后用服務(wù)器的公鑰對其加密,然后將加密后的“預(yù)主密碼”傳給服務(wù)器。

5、服務(wù)器從客戶發(fā)送過來的密碼方案中,選擇一種加密程度最高的密碼方案,用服務(wù)器的私鑰加密后通知瀏覽器。

6、瀏覽器針對這個密碼方案,接著用服務(wù)器的公鑰加過密后發(fā)送給服務(wù)器。

7、服務(wù)器接收到瀏覽器送過來的消息,用自己的私鑰解密,獲得。

8、服務(wù)器、瀏覽器接下來的通訊都是用對稱密碼方案,使用相同的對稱密鑰。

雙向驗證

1、瀏覽器發(fā)送一個連接請求給安全服務(wù)器。

2、服務(wù)器將自己的證書,以及同證書相關(guān)的信息發(fā)送給客戶瀏覽器。

3、客戶瀏覽器檢查服務(wù)器送過來的證書是否是由自己信賴的ca中心所簽發(fā)的。如果是,就繼續(xù)執(zhí)行協(xié)議;如果不是,客戶瀏覽器就給客戶一個警告消息:警告客戶這個證書不是可以信賴的詢問客戶是否需要繼續(xù)。

4、接著客戶瀏覽器比較證書里的消息,例如域名和公鑰,與服務(wù)器剛剛發(fā)送的相關(guān)消息是否一致,如果是一致的,客戶瀏覽器認(rèn)可這個服務(wù)器的合法身份。

5、服務(wù)器要求客戶的身份認(rèn)證,用戶可以建立一個隨機(jī)數(shù)然后對其進(jìn)行數(shù)字簽名,將這個含有簽名的隨機(jī)數(shù)和客戶自己的證書以及加密過的“預(yù)主密碼”一起傳給服務(wù)器。

6、服務(wù)器必須檢驗客戶證書和簽名隨機(jī)數(shù)的合法性,具體的合法性驗證過程包括:客戶的證書使用日期是否有效,為客戶提供證書的ca 是否可靠,發(fā)行ca 的公鑰能否正確解開客戶證書的發(fā)行ca的數(shù)字簽名,檢查客戶的證書是否在證書廢止列表(crl)中。檢驗如果沒有通過,通訊立刻中斷;如果驗證通過,服務(wù)器將用自己的私鑰解開加密的“預(yù)主密碼”,然后執(zhí)行一系列步驟來產(chǎn)生主通訊密碼(客戶端也將通過同樣的方法產(chǎn)生相同的主通訊密碼)。

7、客戶瀏覽器告訴服務(wù)器自己所能夠支持的通訊對稱密碼方案。

8、服務(wù)器從客戶發(fā)送過來的密碼方案中,選擇一種加密程度最高的密碼方案,用客戶的公鑰加過密后通知瀏覽器。

9、瀏覽器針對這個密碼方案,選擇一個通話密鑰,接著用服務(wù)器的公鑰加過密后發(fā)送給服務(wù)器。

10、服務(wù)器接收到瀏覽器送過來的消息,用自己的私鑰解密,獲得通話密鑰。

11、服務(wù)器、瀏覽器接下來的通訊都是用對稱密碼方案,使用相同的對稱密鑰。

一、自建ca,簽署證書

#openssl配置文件路徑
vim/etc/pki/tls/openssl.cnf
#下面只列出配置文件中和自建ca有關(guān)的幾個關(guān)鍵指令
dir=/etc/pki/ca#ca的工作目錄
database=$dir/index.txt#簽署證書的數(shù)據(jù)記錄文件
new_certs_dir=$dir/newcerts#存放新簽署證書的目錄
serial=$dir/serial#新證書簽署號記錄文件
certificate=$dir/ca.crt#ca的證書路徑
private_key=$dir/private/cakey.pem#ca的私鑰路徑

使用openssl制作ca的自簽名證書

#切換到ca的工作目錄
cd/etc/pki/ca
#制作ca私鑰
(umask077;opensslgenrsa-outprivate/cakey.pem2048)
#制作自簽名證書
opensslreq-new-x509-keyprivate/cakey.pem-outca.crt
#生成數(shù)據(jù)記錄文件,生成簽署號記錄文件,給文件一個初始號。
touchindex.txt
touchserial
echo'01'>serial
#自建ca完成

準(zhǔn)備服務(wù)器端證書

#制作服務(wù)器端私鑰
(umask077;opensslgenrsa-outserver.key1024)
#制作服務(wù)器端證書申請指定使用sha512算法簽名(默認(rèn)使用sha1算法)
opensslreq-new-keyserver.key-sha512-outserver.csr
#簽署證書
opensslca-inserver.csr-outserver.crt-days3650

準(zhǔn)備客戶端證書

#制作客戶端私鑰
(umask077;opensslgenrsa-outkehuduan.key1024)
#制作客戶端證書申請
opensslreq-new-keykehuduan.key-outkehuduan.csr
#簽署證書
opensslca-inkehuduan.csr-outkehuduan.crt-days3650

注意事項:

1、制作證書時會提示輸入密碼,設(shè)置密碼可選,服務(wù)器證書和客戶端證書密碼可以不相同。

2、服務(wù)器證書和客戶端證書制作時提示輸入省份、城市、域名信息等,需保持一致。

3、以下信息根證書需要和客戶端證書匹配,否則可能出現(xiàn)簽署問題。

countryname = match stateorprovincename = match organizationname = match organizationalunitname = match

如何指定簽署證書的簽名算法

opensslreqxx
-[digest]digesttosignwith(seeopenssldgst-hforlist)

查看使用的簽名算法:

怎么使用Nginx實現(xiàn)HTTPS雙向驗證

#使用-sha256指定算法
opensslreq-new-keyserver.key-sha256-outserver.csr

二、提供nginx配置文件

server{
listen443;
server_namepro.server.com;
ssion;
ssi_silent_errorson;
ssi_typestext/shtml;
sslon;
ssl_certificate/data/server/nginx/ssl/self/server.crt;
ssl_certificate_key/data/server/nginx/ssl/self/server.key;
ssl_client_certificate/data/server/nginx/ssl/self/ca/ca.crt;
ssl_verify_clienton;
ssl_protocolstlsv1tlsv1.1tlsv1.2;
ssl_ciphersecdhe-ecdsa-aes256-gcm-sha384:ecdhe-rsa-aes256-gcm-sha384:ecdhe-ecdsa-aes256-sha384:ecdhe-rsa-aes256-sha384:ecdhe-ecdsa-aes128-gcm-sha256:ecdhe-rsa-aes128-gcm-sha256:ecdhe-ecdsa-aes128-sha256:ecdhe-rsa-aes128-sha256:ecdhe-ecdsa-rc4-sha:!ecdhe-rsa-rc4-sha:ecdh-ecdsa-rc4-sha:ecdh-rsa-rc4-sha:ecdhe-rsa-aes256-sha:!rc4-sha:high:!anull:!enull:!low:!3des:!md5:!exp:!cbc:!edh:!kedh:!psk:!srp:!kecdh;
ssl_prefer_server_cipherson;
indexindex.htmlindex.htmindex.php;
root/data/www;
location~.*\.(php|php5)?$
{
#fastcgi_passunix:/tmp/php-cgi.sock;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
includefastcgi.conf;
}
location~.*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires30d;
}
location~.*\.(js|css)?$
{
expires1h;
}
###thisistouseopenwebsitelianjielikeonapache##
location/{
if(!-e$request_filename){
rewrite^(.*)$/index.php?s=$1last;
break;
}
keepalive_timeout0;
}
location~/.svn/{
denyall;
}
###end##
include/data/server/nginx/conf/rewrite/test.conf;
access_log/log/nginx/access/access.log;
}

客戶端證書格式轉(zhuǎn)換

#將文本格式的證書轉(zhuǎn)換成可以導(dǎo)入瀏覽器的證書
opensslpkcs12-export-clcerts-inclient.crt-inkeyclient.key-outclient.p12

三、將證書導(dǎo)入瀏覽器,這里以chrome為例

1、在瀏覽器窗口右上角找到設(shè)置

怎么使用Nginx實現(xiàn)HTTPS雙向驗證

2、在設(shè)置窗口中找到高級設(shè)置

怎么使用Nginx實現(xiàn)HTTPS雙向驗證

3、找到管理證書

怎么使用Nginx實現(xiàn)HTTPS雙向驗證

4、點擊導(dǎo)入證書,然后選擇證書路徑就可以了

怎么使用Nginx實現(xiàn)HTTPS雙向驗證

5、在導(dǎo)入證書之后就可以正常訪問到服務(wù)器數(shù)據(jù)了

怎么使用Nginx實現(xiàn)HTTPS雙向驗證

6、如果沒有成功導(dǎo)入客戶端證書就訪問服務(wù)器的話,那么服務(wù)器驗證客戶端證書這步就會失敗,然后返回如下錯誤

怎么使用Nginx實現(xiàn)HTTPS雙向驗證

由于用的是自簽證書不被公有ca信任,所以https那里會有紅叉。

關(guān)于“怎么使用Nginx實現(xiàn)HTTPS雙向驗證”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“怎么使用Nginx實現(xiàn)HTTPS雙向驗證”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享標(biāo)題:怎么使用Nginx實現(xiàn)HTTPS雙向驗證
本文路徑:http://weahome.cn/article/ppjsij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部