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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

nginx 根证书 服务器证书,Nginx双向证书校验(服务器验证客户端证书)

發布時間:2023/12/10 Nginx 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx 根证书 服务器证书,Nginx双向证书校验(服务器验证客户端证书) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、創建Root CA私鑰

openssl genrsa -out root-ca.key 1024

2、創建Root CA證書請求

openssl req -new -out root-ca.csr -key root-ca.key

3、簽發Root CA根證書

openssl x509 -req -in root-ca.csr -out root-ca.crt -signkey root-ca.key -CAcreateserial -days 3650

5、生成服務器私鑰

openssl genrsa -out server.key 2048

6、生成服務器證書簽名請求

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

Common Name注意使用服務器的域名

7、使用Root CA簽發服務器證書(Root CA證書、Root CA私鑰、服務器CSR)

openssl x509 -req -in server.csr -out server.crt -CA root-ca.crt -CAkey root-ca.key -CAcreateserial -days 3650

8、生成客戶端私鑰

openssl genrsa -out client.key 2048

9、生成客戶端證書簽名請求

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

10、簽發客戶端證書(Root CA證書、Root CA私鑰、服務器CSRc)

openssl x509 -req -in client.csr -out client.crt -CA root-ca.crt -CAkey root-ca.key -CAcreateserial -days 3650

11、客戶端證書轉為p12格式(p12格式才能導入瀏覽器)

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

全過程:

Nginx驗證客戶端證書(使用OpenSSL生成自簽名證書)

然后配置Nginx:

server

{

listen 11111;

server_name *.*.com;

ssl on;

ssl_certificate /root/ssl-cert/server.crt;

ssl_certificate_key /root/ssl-cert/server.key;

ssl_verify_client on;

ssl_client_certificate /root/ssl-cert/root-ca.crt;

location / {

client_max_body_size 10M;

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Server $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Real-IP $remote_addr;

proxy_ssl_verify off;

proxy_pass http://172.*.*.*:8080/;

proxy_redirect default;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

server

{

listen11111;

server_name??*.*.com;

sslon;

ssl_certificate/root/ssl-cert/server.crt;

ssl_certificate_key/root/ssl-cert/server.key;

ssl_verify_clienton;

ssl_client_certificate/root/ssl-cert/root-ca.crt;

location/{

client_max_body_size10M;

proxy_set_headerX-Forwarded-Host$host;

proxy_set_headerX-Forwarded-Server$host;

proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;

proxy_set_headerX-Real-IP$remote_addr;

proxy_ssl_verifyoff;

proxy_passhttp://172.*.*.*:8080/;

proxy_redirectdefault;

}

}

此時若不設置客戶端證書訪問會報錯“No required SSL certificate was sent”,我們可以先使用curl進行驗證(–insecure標識忽略服務器端證書校驗,否則自簽名證書會報錯):

curl使用客戶端證書

如果是通過Chrome訪問則是:

No required SSL certificate was sent

此時我們在Chrome中導入客戶端證書,設置-高級-管理證書:

Chrome導入客戶端證書0

然后將其導入“個人”:

Chrome導入客戶端證書1

并在“高級”中勾選“客戶端身份驗證”的用途:

Chrome導入客戶端證書2

然后重啟Chrome,再次訪問時將被提示選擇證書:

Chrome選擇客戶端證書

總結

以上是生活随笔為你收集整理的nginx 根证书 服务器证书,Nginx双向证书校验(服务器验证客户端证书)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。