Em alguns casos, se configura uma Certificado emitido por uma CA autorizada, no caso, pela ICP-Brasil, essa CA autorizada, disponibiliza em seu site, certificado intermediários, que servem para mostrar o CAMINHO para se chegar na ICP-Brasil, porém mesmo tudo correto, no browser ainda tenho erro de "Impossível validar certificado".
Exemplificando, eu EMPRESA, compro um certificado do SERPRO, o mesmo é autorizado pela ICP-BRASIL, perfeito, porém, se eu configurar meu certificado certinho, ele ainda irá apresentar erro em seu browser, informando que ele não consegue verificar se o certificado é valido ou não. Isso se resolve se eu USUÁRIO entrar no site do SERPRO(ou outra entidade), e baixar o CAMINHO(chamado de certificados intermediários) para minha máquina e instalar o mesmo. Esse é um processo simples, porém para usuários com pouco conhecimento em informática, isso se torna um problema.
Temos uma solução muito simples. Vamos configurar nosso servidor para automaticamente, enviar esse CAMINHO para o browser do usuário.
Vamos criar uma arquivo .PEM, que irá conter nosso certificado, mais os certificados intermediários da CA que emitiu o nosso certificado, no caso, SERPRO.
1º Passo - Baixar os certificados intermediários de nossa CA:
Seguindo o exemplo(SERPRO), entrar no seguinte site:
Você irá fazer o download dos seguintes certificados e colocar em nosso diretório de certificados, criado no APACHE:
ICP-Brasil
Autoridade Certificadora do SERPRO v1
Autoridade Certificadora do SERPROACF v1
2º Passo - Criando o arquivo .pem:
Esse arquivo, terá nosso certificado e os demais baixos, porém, precisamos se atentar a "ordem", que iremos colocar esse arquivo, pois, precisamos colocar em um esquema de "arvore", onde temos nosso certificado como o primeiro, e da ICP-Brasil como o último, assim, estaremos mostrando o caminho do nosso certificado, até chegar na ICP-Brasil.
Dentro do diretório dos certificados do Apache:(/usr/local/apache2/conf/certificados)
# cat nossocertificado.cer >> caminho.pem
# cat SERPROACFv1.cer >> caminho.pem
# cat SERPROv1.cer >> caminho.pem
# cat ICP-Brasil.cer >> caminho .pem
3º Passo - Editando o Apache
Vamos configurar a entrada "SSLCertificateChainFile" dentro http-ssl.conf, ele irá mandar esse "caminho" de certificados para o browser do usuário automaticamente.
# cd /usr/local/apache2/conf/extra
# vi http-ssl.conf
Procurar pela entrada "SSLCertificateChainFile" e deixar como abaixo:
# SSLCertificateChainFile /usr/local/apache2/conf/caminho.pem
4º Passo - Reiniciar o apache:
# /usr/local/apache2/bin/apachectl restart
Pronto, problema resolvido, vale lembra que isso só ira acontecer se sua CA possuir certificados intermediários.