Nginx+SSL實(shí)現(xiàn)雙向認(rèn)證

首先創(chuàng)建一個(gè)目錄

cd /etc/nginx
mkdir ssl
cd ssl

CA與自簽名

制作CA私鑰
openssl genrsa -out ca.key 2048
制作 CA 根證書(公鑰)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

注意:

1、Common Name 可以隨意填寫
2、其他需要填寫的信息為了避免有誤,都填寫 . 吧

服務(wù)器端證書

制作服務(wù)器端私鑰:
openssl genrsa -out server.pem 1024
openssl rsa -in server.pem -out server.key
生成簽發(fā)請求:
openssl req -new -key server.pem -out server.csr

注意:

1、Common Name 得填寫為訪問服務(wù)時(shí)的域名,這里我們用 usb.dev 下面 NGINX 配置會(huì)用到
2、其他需要填寫的信息為了避免有誤,都填寫 . 吧(為了和 CA 根證書匹配)
用CA簽發(fā)
openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt

客戶端證書

與服務(wù)端證書類似

注意:

1、Common Name可以隨意填寫
2、其他需要填寫的信息為了避免有誤,都填寫 . 吧(為了和 CA 根證書匹配)

至此需要的證書都弄好了,我們可以開始配置 NGINX 了。

Nginx配置

server {
        listen 443;
        server_name usb.dev;

        index index.html;

        root /data/test/;

        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;
        ssl_client_certificate /etc/nginx/ssl/ca.crt;
        ssl_verify_client on;
}

請求驗(yàn)證

驗(yàn)證過程可以選擇在其他機(jī)器或是本機(jī),為了能夠解析 usb.dev,還需要配置一下 /etc/hosts:
ip地址 usb.dev
如果用瀏覽器驗(yàn)證,需要把客戶端證書導(dǎo)出成 p12 格式的
openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12
從服務(wù)器上將幾個(gè)證書下載下來,然后安裝到可信的證書列表,點(diǎn)擊剛才生成的p12文件輸入證書的密碼將安裝至個(gè)人列表。
然后關(guān)閉瀏覽器,重新輸入域名,會(huì)出現(xiàn)ssl雙向驗(yàn)證的證書提示。選擇證書即可。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容