ssl证书双向认证配置可参考http://blog.csdn.net/hrayha/article/details/46446653
某天突然发现证书认证失效了,所有人访问都校验失败,提示400错误,服务器各项服务都正常,异常的这段时间也没进行过什么操作,起初怀疑nginx的问题,重启了一下,问题依旧,是否为客户端传递证书信息的时候失败了呢,抓包看了下也正常,纠结了一会,同事给出了一个线索,执行
openssl verify -crl_check -CRLfile private/ca.crl -CAfile private/ca.crt client.crt
发现错误提示error 12 at 0 depth lookup:CRL has expired
通过这条提示可以明显的看出是crl过期了,那么执行
openssl ca -gencrl -out private/ca.crl
然后重启了下nginx果然就好了
看了下openssl的配置文件,原来是这条搞的鬼
default_crl_days = 30
之前这条配置是从网上抄来的,当时也没太注意,应该是30天内没吊销过证书就会出问题,这里改成3650,后面应该就没事了