首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx -反向代理证书认证

nginx -反向代理证书认证
EN

Stack Overflow用户
提问于 2017-01-30 10:30:49
回答 1查看 8.7K关注 0票数 4

我试图使用nginx作为运行Tomcat的内部use服务器的反向代理,Tomcat是我们ERP系统的前端。

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

但是,我希望增加一个额外的保护层,要求用户在他们的计算机上拥有一个数字证书,这样他们就可以访问第一个(nginx)服务器。对后端服务器不使用/不需要证书.

我已经通过了本教程http://nategood.com/client-side-certificate-authentication-in-ngi,它允许我生成我的自我签名证书和其他一切。

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

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

代码语言:javascript
复制
400 Bad Request

No required SSL certificate was sent

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

下面是我的完整nginx配置:

代码语言:javascript
复制
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;
        }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-30 13:05:06

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

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

代码语言:javascript
复制
cat user.key user.crt | openssl pkcs12 -export -out user.p12
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41933654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档