Dri*_*104 9 nginx ssl-certificate
我让 Nginx 纯粹作为各种网络服务器的代理运行。我们的一位客户要求我们使用客户端证书,并为 3 台不同的机器提供了 3 个证书,这些机器将连接到在其中一台代理服务器上运行的网络服务。
在我找到相关的 nginx 设置并创建站点配置之前从未这样做过(下面的相关部分)
server {
listen 443 ssl;
server_name service.domain.com;
ssl_certificate /etc/nginx/ssl/wildcard/server.crt;
ssl_certificate_key /etc/nginx/ssl/wildcard/server.key;
ssl_client_certificate /etc/nginx/ssl/client.certificates/client_package.cer;
ssl_verify_client on;
Run Code Online (Sandbox Code Playgroud)
我将 3 个客户端证书和一个由开发人员创建的证书(这个是自签名的)连接到上面提到的单个文件中,该开发人员需要在开发过程中访问该站点。
客户现在已尝试访问该站点,但无法访问。作为对配置的测试,我从连接的证书文件中删除了开发人员证书,并确认他无法访问该站点。一旦我将他的证书重新添加到连接文件中,他(开发人员)就能够再次正确访问该站点。
我打开了错误日志上的调试级别访问权限,当客户端尝试连接时,出现以下错误。
2015/08/13 11:57:41 [info] 27601#0:*1963 客户端在处理 SPDY 时没有发送所需的 SSL 证书,客户端:1x.xx.xx.xx,服务器:service.domain.com,请求:“ GET /test.cfm HTTP/1.1”,主机:“service.domain.com”
从上面的配置中可以看出,我没有启用 SPDY(但我在其他站点上启用了),并且客户端确保我他们正在发送客户端证书。由于这是我第一次这样做,我想确保在我回去说我的日志说你没有发送客户端证书之前,我已经把一切都弄好了。
关于发送给我的证书:所有 3 个证书均由同一公共证书颁发机构签名。但是,我没有在连接文件中的整个链。我在网上找到的指南也提到了拥有根 ca,但他们都在谈论自签名,而这些都不是。所以我不确定这是否适用。
为了澄清,我也没有尝试将客户端证书传递给代理服务器。
nginx 版本:nginx/1.8.0
openssl 版本:OpenSSL 1.0.1k 2015 年 1 月 8 日
如果需要更多信息,请告诉我
| 归档时间: |
|
| 查看次数: |
17004 次 |
| 最近记录: |