A partir do exemplo de configuração da página de suporte do RabbitMQ TLS , adicione as opções crl_check
e crl_cache
como isso:
[
{rabbit, [
{ssl_listeners, [5671]},
{ssl_options, [{cacertfile,"/path/to/testca/cacert.pem"},
{certfile,"/path/to/server/cert.pem"},
{keyfile,"/path/to/server/key.pem"},
{verify,verify_peer},
{fail_if_no_peer_cert,false}]},
{crl_check, true},
{crl_cache, {ssl_crl_cache, {internal, [{http, 5000}]}}}
]}
].
A definição de crl_check
para true
significa que as CRLs serão verificadas em toda a cadeia de certificados e, se houver alguma falta de CRL, a validação falhará. Você poderia defini-lo como peer
ou best_effort
; veja a documentação do módulo Erlang ssl
para detalhes.
Na amostra acima, ativei o download de CRLs por HTTP, com um tempo limite de 5 segundos (5000 milissegundos). O URL é retirado da extensão cRLDistributionPoints
no certificado.
No momento, não há nenhuma abordagem de CRL baseada em arquivo local disponível, mas enviei uma solicitação de solicitação que permite obter CRLs de um diretório local da mesma maneira que o Apache faz.