我正在使用Nginx(1.1.9)在https上使用客户端证书function来提供debian软件包。
listen 443 ssl; ... ssl_certificate /etc/ssl/ca.chain.crt; ssl_certificate_key /etc/ssl/server.key; #ssl_crl /etc/ssl/ca-crl.pem; ssl_client_certificate /etc/ssl/ca.pem; ssl_verify_client on; ssl_verify_depth 2; ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1; ... error_log /var/log/Nginx/error.log debug; ...
我使用reprepro来configuration一个apt repo.I可以使用apt-get更新到这个repo没有任何错误,但是当我注释掉ssl_crl为了使用撤销列表,日志显示:
client SSL certificate verify error: (3:unable to get certificate CRL) while reading client request headers,client: xxx.xxx.xxx.xxx,server: apt.myrepo.com,request: "GET /ubuntu/dists/precise/non-free/i18n/Translation-en HTTP/1.1",host: "apt.myrepo.com"
我不确定为什么Nginx可以find我的证书吊销列表。
Nginx / gunicorn Django Rest Framework应用程序的端口代理
Nginx每秒计数请求数
如何在Ubuntu上优化uWsgi python app + Nginx?
重新启动我的Ruby on Rails应用程序时,错误
Nginx的“location〜。”和“location〜* ”。
IP使用Nginx将单个PHP文件列入白名单,但仍然运行PHP
通过Nginx无限期地cachingHTTP响应失败
发生这种情况是因为Nginx需要为ssl_client_certificate证书链中提到的ssl_client_certificate证书(包括根CA的CRL)提供CRL。
当我创建根CA和中间CA以便为Intranet站点生成证书时,我自己实现了这一点。 当我配置Nginx使用SSL客户端认证时,我只使用了中间CA的CRL。 Nginx需要查看链中的每个证书(包括中间CA)的CRL,以确保中间CA的证书没有被根撤销。 将根CRL连接到中间CRL解决了问题。
笔记
默认的CRL到期期限( default_crl_days )是30天,所以你需要制定一个系统来保持一切都是最新的。
感谢这个帖子 ,我在google-fu之后发现了这个帖子 ,这表明我错过了另一个链中的证书。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。