mod_ssl SSLCACertificatePath Uso adequado ou qual é a melhor maneira de manipular várias CAs de certificado de cliente aceitável

9

Estou tentando usar a diretiva mod_proxy SSLCACertificatePath, mas estou um pouco confuso sobre como usá-lo corretamente.

Aqui estão dois links que explicam a diretiva SSLCACertificatePath:
http://httpd.apache.org/docs/2.0/mod/mod_ssl.html#sslcacertificatepath
http://www.modssl.org/docs/2.8/ssl_reference.html#ToC13

Não sou positivo em como criar os links simbólicos com hash. O segundo link declara usar o arquivo apache make, mas não tenho noção do que exatamente está sendo dito lá.

Qualquer orientação amigável seria muito apreciada.

Obrigado pelo seu tempo.

ATUALIZAR

O objetivo da minha pergunta era descobrir como lidar com várias CAs para validar certificados de cliente de usuário final. Eu não sabia que vários certificados pem poderiam estar usando em um arquivo, o que, no meu caso, é claramente o caminho certo para avançar.

hooknc
fonte

Respostas:

5

Se você não sabe ao certo como criar os links simbólicos com o hash, minha sugestão é não usar CACertificatePath, mas usar CACertificateFile. (Na verdade, esta é minha sugestão em geral: a manutenção adequada de um CACertificateFile pode ser um pouco mais trabalhosa se você tiver muitos certificados de CA que mudam com frequência, mas você provavelmente não deve ter muitos Certificados de CA e eles não devem mudar muito. .) Além disso, parece que o Makefile mencionado desapareceu dos tarballs de distribuição do Apache (e a falta geral de protestos públicos pode indicar quantas pessoas estão usando o método "path" para armazenar certificados :).

Dito isso, se você ainda quiser fazer isso, poderá seguir o que o DerfK disse (obtenha o Makefile antigo ou escreva seu próprio script / makefile que roda openssl x509 -noout -hashem todos os seus arquivos de certificado e cria links simbólicos com nome apropriado).

voretaq7
fonte
Obrigado pela sua resposta. Infelizmente, teremos vários certificados de CA e eles mudarão. Você sabe como ter vários certificados em um arquivo? É tão simples quanto recortar e colar um certificado de um arquivo para outro arquivo que possui todos os certificados?
21711 hooknc
1
Na verdade, é tão simples quanto recortar e colar - costumava estar ca-bundle.crtincluído no mod_ssl nos dias do Apache 1.x (e ainda disponível em certifie.com/ca-bundle/ca-bundle.crt.txt ). Para sua sanidade, eu comentaria o arquivo para que você possa saber qual bloco de certificado pertence a qual CA se / quando precisar alterá-lo posteriormente.
voretaq7
Notícias fantásticas. Provavelmente, avançaremos com esta solução. Felizmente, alguém mais será responsável por gerar esse arquivo .crt. Mais uma vez obrigado pelo seu tempo.
hooknc
4

Eu encontrei um bug aberto sobre isso. Além de baixar a versão antiga do modssl.org referida no bug e obter o Makefile, parece que você pode obter o valor do hash, openssl x509 -in foo.crt -noout -hashembora não esteja claro ao que a parte ".N" se refere (talvez isso seja para colisões de hash (por exemplo, o primeiro certificado com o hash 12345678 tem um link simbólico 12345678.1 apontando para ele, o segundo certificado que tem o mesmo hash usa .2? Ou talvez ele comece com .0?)

Se você obtiver o Makefile.crtarquivo do antigo modssl, acredito que o que você faria é soltá-lo na pasta com todos os seus certificados e depois executar make -f Makefile.crtnessa pasta.

DerfK
fonte
Obrigado pela sua resposta. Apontar para esse relatório de bug realmente ajudou. Aqui está o link direto para o download do recurso mencionado no bug: modssl.org/source/mod_ssl-2.8.31-1.3.41.tar.gz Eu olhei o Makefile.crt e acredito que você está correto no esquema de numeração, mas não sou muito bom em scripts * nix. <hash> .1, <hash> .2, <hash> .3, etc ... Tentei usar os comandos que você recomendou e, em seguida, o link simbólico nomeado como hash e tudo parecia funcionar. Vou ter que tentar com vários arquivos CA agora.
precisa saber é o seguinte
1
A numeração começa com .0.
Raman
1
Aqui está o que Makefilejá foi extraído do tar.gz: gist.github.com/rocketraman/9228a42b78e094b3c2218f6e57844ee0
Raman
A execução make -f Makefile.crtna pasta com certificados dá Makefile.crt ... Skippederro.
sério