ssl - 带有中间证书的客户端 SSL

标签 ssl nginx

我有一个自签名根证书和一个由该根签名的中间证书。基本上是这样的:

.
└── master (CA)
    └── servant1 (CA)

我有一些来自 master->servant1 证书链的客户端证书:

.
└── master (CA)
    └── servant1 (CA)
        ├── client1
        ├── client2
        └── client3

我想在 nginx 中验证这些客户端证书,但我遇到了很多麻烦。

这是我的 nginx 配置:

upstream luci {
    server localhost:8080;
}

server {
    listen                  127.0.0.1:80;
    server_name             myserver;

    return 301 https://$host$request_uri;
}

server {
    listen                  127.0.0.1:443;
    server_name             myserver;

    ssl                     on;
    ssl_certificate         /etc/nginx/certs/myserver.crt;
    ssl_certificate_key     /etc/nginx/certs/myserver.key;

    ssl_session_timeout 5m;

    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1.2 TLSv1.1;
    ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AES:!ECDH+3DES:!DH+3DES:!RSA+3DES:!aNULL:!MD5:!DSS;

    ssl_client_certificate /etc/nginx/certs/servant1-ca-chain.crt;
    ssl_verify_client on;
    ssl_verify_depth 2;

    location / {
        proxy_pass http://luci;
    }
}

这应该非常简单。所有由中间 servant1 CA 签名的客户端证书都应该被允许连接到 nginx。

但是,当我尝试使用这些客户端证书访问服务器时,我得到了:

a

(显然是一个非常详细和有用的错误)

我在我的日志中找到了这个:

2013/12/01 22:46:18 [alert] 7478#0: *5 ignoring stale global SSL error (SSL: error:0407006A:lib(4):func(112):reason(106) error:04067072:lib(4):func(103):reason(114) error:0D0C5006:lib(13):func(197):reason(6)) while reading client request line, client: 192.168.1.208, server: myserver

这里的有用信息是:

ignoring stale global SSL error

出了什么问题,我该如何解决?

最佳答案

我使用 OpenSSL 生成了我的证书,很可能在这个过程中搞砸了。

我的建议是使用 XCA在所有可能的情况下生成 SSL 证书,因为它非常安全、功能齐全,并且可以轻松管理公钥和私钥、证书、CSR 等。

关于ssl - 带有中间证书的客户端 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20322399/

相关文章:

nginx - 更改 Nginx 自动索引的排序

nginx - nginx作为Elasticsearch负载均衡器性能低下

python - 找不到带有 nginx + mod_wsgi 模板文件的 webpy

c# - 以编程方式将证书导入 IIS?

php - 有人有好的 SSL 教程吗? (PHP)

javascript - 失败:连接建立错误:net::ERR_CONNECTION_REFUSED

iOS 企业部署 : Clicking on itms-services link results in "Cannot connect to [domain]" error

php - nginx 不解析 php 请求

Azure Kubernetes - 无法连接 Pod 容器

PHP PDO 加密/ssl 数据层