gpt4 book ai didi

ssl - nginx - 反向代理证书认证

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

我正在尝试使用 nginx 作为运行 Tomcat 的内部网络服务器的反向代理,它托管我们的 ERP 系统的前端。

它已经运行良好:我可以完美地连接到 nginx 服务器(它被锁定在我们的网络、不同的 VLAN、防火墙等等),然后反向代理到我的 ERP 服务器。

但是,我想通过要求用户在他们的计算机上拥有数字证书来添加额外的保护层,以便他们可以访问第一个 (nginx) 服务器。后端服务器不使用/不需要该证书。

我已完成本教程 http://nategood.com/client-side-certificate-authentication-in-ngi这让我能够生成我的自签名证书和其他一切。

在 nginx 配置上使用 ssl_verify_client optional 时,我可以正常连接到我的后端服务器,但没有要求/不需要证书。

当我将其切换到 ssl_verify_client on 时,所有访问都被

阻止
400 Bad Request

No required SSL certificate was sent

无论我使用哪种浏览器(Chrome、IE、Edge、Firefox)。当然,我将所有证书/链都放在我的客户端计算机上,但是在任何浏览器上都不需要证书。我缺少什么?

这是我的完整 nginx 配置:

server {
listen 443;
ssl on;
server_name 103vportal;

ssl_password_file /etc/nginx/certs/senha.txt;
ssl_certificate /etc/nginx/certs/server.crt;
ssl_certificate_key /etc/nginx/certs/server.key;
ssl_client_certificate /etc/nginx/certs/ca.crt;
ssl_verify_client on;


location / {
proxy_pass http://10.3.0.244:16030;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

proxy_read_timeout 300;
proxy_send_timeout 300;
}

}

最佳答案

假设您已经为您的用户生成了私钥和证书请求,并使用您的客户端 CA 对其进行了签名。您需要将私钥和签名证书放入浏览器的个人证书列表中。

我发现最好的方法是创建一个密码保护的 PKCS#12(因为一些浏览器坚持密码保护)。我使用以下 OpenSSL 命令:

cat user.key user.crt | openssl pkcs12 -export -out user.p12

关于ssl - nginx - 反向代理证书认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41933654/

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