NGINX 使用客户端证书 (ssl_verify_client)
NGINX using client certificate (ssl_verify_client)
我有一个奇怪的问题,我什至不知道如何表达,但我尽力了
我使用 laravel forge 通过 LetsEncrypt 管理我的 SSL。
它生成文件:
server.crt
server.key
How to get .pem file from .key and .crt files?
基于 link,我理解 server.crt 与发布者询问的 .pem 相同。
因此,为了生成 ca.pem,我做了以下操作:
cat /etc/ssl/certs/DST_Root_CA_X3.pem server.crt > ca.pem
然后在我的 nginx.conf 中有这些行:
ssl_client_certificate /etc/nginx/ssl/domain/ca.pem;
ssl_verify_client on;
我的主要目标是将它与 mqtt 一起使用,按照 2 个指南,我达到了这个设置,但是用我的 mqtt 命令发送 ca.pem,我得到:
*77 client sent no required SSL certificate while SSL handshaking, client: 11.112.7.84, server: 11.166.22.84:8883
这行不通。
您需要使用自己的 CA 来颁发客户端证书,您不能使用 LetsEncrypt 的 CA 和服务器证书来 issue/verify 客户端证书(它们应该设置标志以防止这种情况发生)。
ssl_client_certificate
需要指向用于颁发客户端证书的证书链,客户端出示客户端证书以识别其自身。
用于验证代理的证书不需要以任何方式与客户端证书关联。
我有一个奇怪的问题,我什至不知道如何表达,但我尽力了
我使用 laravel forge 通过 LetsEncrypt 管理我的 SSL。
它生成文件:
server.crt
server.key
How to get .pem file from .key and .crt files? 基于 link,我理解 server.crt 与发布者询问的 .pem 相同。
因此,为了生成 ca.pem,我做了以下操作:
cat /etc/ssl/certs/DST_Root_CA_X3.pem server.crt > ca.pem
然后在我的 nginx.conf 中有这些行:
ssl_client_certificate /etc/nginx/ssl/domain/ca.pem;
ssl_verify_client on;
我的主要目标是将它与 mqtt 一起使用,按照 2 个指南,我达到了这个设置,但是用我的 mqtt 命令发送 ca.pem,我得到:
*77 client sent no required SSL certificate while SSL handshaking, client: 11.112.7.84, server: 11.166.22.84:8883
这行不通。
您需要使用自己的 CA 来颁发客户端证书,您不能使用 LetsEncrypt 的 CA 和服务器证书来 issue/verify 客户端证书(它们应该设置标志以防止这种情况发生)。
ssl_client_certificate
需要指向用于颁发客户端证书的证书链,客户端出示客户端证书以识别其自身。
用于验证代理的证书不需要以任何方式与客户端证书关联。