Nginx+SSL實現雙向認證的示例代碼
首先創(chuàng)建一個目錄
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、其他需要填寫的信息為了避免有誤,都填寫 . 吧
服務器端證書
制作服務器端私鑰:
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 得填寫為訪問服務時的域名,這里我們用 usb.dev 下面 NGINX 配置會用到
2、其他需要填寫的信息為了避免有誤,都填寫 . 吧(為了和 CA 根證書匹配)
用CA簽發(fā)
openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt
客戶端證書
與服務端證書類似
注意:
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; }
請求驗證
驗證過程可以選擇在其他機器或是本機,為了能夠解析 usb.dev,還需要配置一下 /etc/hosts:
ip地址 usb.dev
如果用瀏覽器驗證,需要把客戶端證書導出成 p12 格式的
openssl pkcs12 -export -clcerts -in client.crt -inkey client.pem -out client.p12
從服務器上將幾個證書下載下來,然后安裝到可信的證書列表,點擊剛才生成的p12文件輸入證書的密碼將安裝至個人列表。
然后關閉瀏覽器,重新輸入域名,會出現ssl雙向驗證的證書提示。選擇證書即可。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
nginx php-fpm環(huán)境中chroot功能的配置使用方法
這篇文章主要介紹了nginx php-fpm環(huán)境中chroot功能的配置使用方法,此方法是比禁用PHP敏感函數更好的一個安全防護手手段,需要的朋友可以參考下2014-05-05Nginx 路由轉發(fā)和反向代理location配置實現
本文主要介紹了Nginx 路由轉發(fā)和反向代理location配置實現,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11Nginx?ingress?controller高可用的實現
本文主要介紹了Nginx?ingress?controller高可用的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-06-06