加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx无法获得证书CRL

发布时间:2020-12-13 21:21:36 所属栏目:Nginx 来源:网络整理
导读:我正在使用nginx(1.1.9)通过使用客户端证书功能在https上提供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

我正在使用nginx(1.1.9)通过使用客户端证书功能在https上提供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来配置一个apt repo.我可以使用apt-get update来更新这个repo而没有任何错误但是当我注释掉ssl_crl以便使用撤销列表时,Log display:

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可以找到我的证书撤销列表.

这是因为nginx需要为ssl_client_certificate证书链中提到的每个证书提供CRL,包括根CA的CRL.

当我创建根CA和中间CA以便为Intranet站点生成证书时,我自己就这样做了.当我配置nginx以使用SSL客户端身份验证时,我只使用了来自中间CA的CRL. nginx需要查看链中每个证书的CRL,包括中间CA,以确保中间CA的证书未被root用户撤销.将根CRL连接到中间CRL上可以解决问题.

笔记

>默认的CRL有效期(default_crl_days)为30天,因此您需要设计一个系统以使所有内容保持最新.
>感谢this post,这是我在Google-fu之后发现的,这表明我错过了链中的另一个证书.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读