Temos uma instalação do Discourse com acesso exclusivo por convite. Ao enviar um convite, o convidado só deverá poder aceitá-lo se um determinado certificado de cliente estiver presente no navegador.
É possível também usar um campo de certificado e salvá-lo na instância do usuário como um campo de usuário? Por exemplo, se quisermos salvar a data de expiração, isso é viável?
O caso de uso é que existe uma organização aqui que faz autenticação de empresas usando esses certificados de cliente. Estamos tentando criar uma instância do Discourse onde apenas essas empresas tenham acesso. Parece simples o suficiente com base no snippet do nginx fornecido por @michaeld.
Nesse certificado também há um número da empresa; gostaríamos de obter esse número e torná-lo disponível na instância do Discourse. Assim, elas poderão se encontrar facilmente e serão identificáveis apenas pelo número da empresa.
Espero que esteja claro agora; se não, fique à vontade para perguntar.
Você pode contar com as pessoas dessas empresas usando um e-mail corporativo? Isso seria muito mais fácil do que um plugin capaz de ler o certificado. Você até poderia mapeá-lo de volta para o número da empresa, caso esse número seja de alguma forma muito importante.