gpt4 book ai didi

authentication - 使用 nginx 的自签名 ssl 证书进行客户端身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:12 24 4
gpt4 key购买 nike

我在我的 LAN 中托管了一个 nginx 网络服务器,我想对使用 ssl 客户端证书访问我的服务器的客户端进行身份验证。我生成了一个自签名 SSL 证书和一个客户端证书,遵循谷歌上的一些文档。但是我无法验证拥有证书的客户端。我收到以下错误

当从 Firefox 请求时:

2017/08/10 18:30:13 [info] 8994#0: *4 client sent no required SSL certificate while reading client request headers, client: 192.168.16.27, server: 192.168.26.43, request: "GET /hls1/master.m3u8 HTTP/1.1", host: "192.168.26.43"

当使用 curl 请求时:curl -v -s -k --key client.key --cert client.crt --cacert ca.crt https://192.168.26.43/hls2/master.m3u8

2017/08/10 18:30:33 [info] 8994#0: *5 client SSL certificate verify error: (18:self signed certificate) while reading client request headers, client: 192.168.16.27, server: 192.168.26.43, request: "GET /hls2/master.m3u8 HTTP/1.1", host: "192.168.26.43"

那么,我的问题是我可以使用自签名证书对客户端进行身份验证吗?如果可以,谁能提供实现此目的的步骤?

最佳答案

我只是无意中发现了一个小陷阱,它导致了您遇到的相同错误:

error 18 at 0 depth lookup: self signed certificate

有很多关于如何创建自签名客户端证书的指南,我使用了以下内容(改编自 here ):

# Create the CA Key and Certificate for signing Client Certs
openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 365 -key ca.key -out ca.crt

# Create the Client Key and CSR
openssl genrsa -des3 -out client.key 4096
openssl req -new -key client.key -out client.csr

# Sign the client certificate with our CA cert
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt

# Convert to .p12 so import in OSX works
openssl pkcs12 -export -clcerts -inkey client.key -in client.crt -out client.p12 -name "MyKey"

但是,如果您对您的 ca 和您的客户端证书使用相同的组织名称(例如,公司),您将看到上述错误!(已编辑:重要)

如果 openssl verify -verbose -CAfile ca.crt client.crt 没有提示自签名证书,您就可以开始了。

关于authentication - 使用 nginx 的自签名 ssl 证书进行客户端身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45628601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com