Gerando um certificado SSL / TLS do lado do cliente a partir do navegador

1

O CACert e o MyOpenID fazem isso: eles têm um formulário que, quando enviado, fará com que o navegador gere uma chave e envie a parte pública para ser assinado. Em seguida, devolva o certificado assinado contendo a chave pública que o navegador vincula-se em seu keystore e usa para autenticação no futuro. Eu sei como usar SSLVerify e semelhante para verificar o certificado de cliente, uma vez que o usuário tem, e sei como gerar uma autoridade de certificação e cliente normalmente usando as ferramentas de linha de comando openssl, mas não como fazer o bit de interação do navegador para gerar o chave etc.

Eu provavelmente estou usando Apache e Ruby / Rack ou PHP se isso ajuda:)

    
por singpolyma 27.05.2011 / 22:15

1 resposta

1

Você está procurando a tag keygen . Veja a página da Mozilla .

Talvez seja melhor deixar o EJBCA fazer isso, já que lida com as peculiaridades do navegador usando o componente external-ra (eu fiz :)).

Essencialmente, construa duas instâncias de ejbca. Um para atuar como seu ca por trás de sua rede segura. Outra instância como o frontend ra que será usado para registrar seus usuários. O ca consulta o ra consultando o banco de dados MySQL do ra (arquivo de configuração externalra.properties), seleciona quaisquer CSRs pendentes, assina-os e depois retorna certificados.

Para você inscrever um usuário:

  • Você deve pré-criar o usuário no destino (End entity como são chamados. O que significa que você deve criar um ca, caprofile, etc)
  • Faça login na interface externalra com as credenciais da entidade final e envie o formulário.
  • O navegador do cliente começará a exibir um ícone ocupado.
  • O CSR atinge o ra db, e aguarda o ca para pegar o csr e soltar um certificado. Uma vez que o certificado atinge o ra db, é apresentado ao usuário.

Aqui está um script de criação do ejbca que usei . Não vai funcionar logo de cara, mas deve funcionar. Atualizar: Veja também esta pergunta e este link para uso do certificado de cliente no Apache

    
por 27.05.2011 / 23:11