Os navegadores têm uma lista de certificados de "autoridade de certificação" (CA) confiáveis. Se o certificado de um servidor for assinado por um desses certificados de CA e for formado corretamente, você não receberá o aviso de SSL.
Muitos navegadores são fornecidos com muitos certificados de CA comuns, como Verisign, Thawte, etc. A maioria dos navegadores permite que você importe uma nova CA para essa lista de CAs confiáveis.
Assim como criar seu próprio certificado de servidor autoassinado, você pode criar seu próprio certificado de CA autoassinado. Você pode então usar isso para assinar seu certificado de servidor. Se a sua CA não é fornecida por uma empresa conhecida, o que não seria feito se você fosse uma empresa, ela teria que ser explicitamente importada no lado do servidor.
Eu usei xca
para fazer isso antes. Tem modelos para CAs e servidores HTTP. O procedimento é este:
- Crie uma chave privada para sua CA
- Crie uma autoridade de certificação autoassinada usando essa chave usando o modelo "CA"
- Crie uma chave privada para seu servidor proxy
- Crie uma "solicitação de assinatura de certificado" (CSR) usando a segunda chave, fazendo referência à CA que acabou de criar.
- "Assine" o CSR e você terá o certificado do servidor proxy, que faz referência à sua própria autoridade de certificação.
Você precisará exportar (como um arquivo, se estiver usando xca
) o certificado de CA (mas não inclua a chave privada, é claro). Um .pem
será gerado, mas você pode alterar a extensão para .crt
. Quando um usuário clica nele, ele será oferecido para ser instalado no Firefox e no Internet Explorer e, possivelmente, em outros grandes navegadores. Quanto a instalação automática deste .crt, você pode:
- use a política de grupo no IE
- direcione os usuários para uma página de introdução solicitando que eles façam o download / instalem o .crt, se quiserem evitar avisos.
Você pode usar as funções de exportação no certificado do servidor HTTP (exporte a chave privada e o certificado para o lado do servidor) para colocar no seu servidor proxy.