Pergunta

Atualmente estou trabalhando em um projeto onde eu criei um cert CA e um par de certs criança para que cert CA. Os certificados são vai ser usado para proteger a comunicação entre servidores em uma configuração SAMLV2 então eu vou ter um cert para o provedor de identidade e uma cert para o prestador de serviços. O usuário / navegador não está indo para validar os certificados por isso é apenas os servidores que precisam de confiar no meu CA. personalizado Meu cert aparência de árvore algo como isto:

  • CustomRootCACert
    • CustomIdentityProviderCert
    • CustomServiceProviderCert

Agora, eu ouvi um monte de gente dizendo que é ruim para usar um certificado de fabricação caseira na produção. Mas nunca quando eu pergunto por que, as pessoas geralmente apenas murmura algo sobre segurança, mas entrar em detalhes. Existem razões técnicas para não usar meus próprios certificados em produção? Eu não consigo pensar em nenhum ... É claro que eu percebo que se eu perder o controle de minha raiz cert qualquer um poderia começar a criar todos os tipos de certificados. Mas neste caso eles também teriam de instalar os certificados nos meus servidores e configurar o aplicativo saml usá-los. Só então eles poderiam começar a gerar pedidos de SAML falsos e respostas às minhas aplicações.

Se este é o único problema, esta solução (usando certificados caseiros em produção) ainda seria melhor do que a configuração de login que temos hoje.

Foi útil?

Solução

Pergunte-se que um certificado prova.

Se você receber um certificado emitido por uma CA respeitável, então isso prova que o titular do certificado foi verificada a sua identidade para que a CA, para os seus padrões de prova.

Se você receber um certificado emitido por uma CA ad-hoc, então isso prova que alguém sabe como fazer certificados.

Se você controlar ambas as extremidades da conversa, eu acho que é bom ter a sua própria CA privada para o efeito. Você confiaria sua própria CA. Provavelmente, você pode fazer isso muito segura de fato (por manter a chave privada CA em um lugar seguro offline, e fazer a assinatura de um exercício sneakernet).

A dificuldade seria se você necessária para persuadir ninguém a confiar em sua CA. Por que deveriam? Você precisaria para convencê-los de que era seguro fazê-lo, e eles teriam a sobrecarga de administração de adicionar seu certificado CA aos seus clientes.

Outras dicas

Uma vez que você estiver usando apenas o certificado para proteger o tráfego de rede e não de usuários autenticados / computadores, então parece que você tem um uso legítimo para usar MakeCert.exe.

eu sinto que há uma coisa que vale a pena mencionar. Depois de passar algum tempo trabalhando com o MakeCert.exe interface que você pode considerar o uso de um certificado raiz servidor autônomo em seu lugar.

Considere os seguintes pontos:

  • (quase) todas as versões do Windows Server incluem Serviços de certificado de servidor para livre
  • Windows CA servidor autônomo é extremamente simples de instalar e configurar
  • Independente do Windows CA Server pode ser instalado em uma máquina virtual e ligado / desligado sempre que precisar para emitir um certificado adicional
  • A VM baseado em Windows Independente CA Server pode ser executado usando muito pouca memória (ex. 256mb)
  • Independente CA Server inclui um agradável e interface de inscrição baseada na Web limpa para simplificar o pedido dos certificados do Windows.
  • verificação CRL pode ser usado ou não utilizado, dependendo das suas necessidades.

No passado, eu comecei com SelfSSL.exe e, eventualmente, mudou-se para MakeCert.exe para gerar um certificado raiz e, em seguida, emitiu meus certificados de cliente. Mas depois de lutar com a sintaxe e sempre ter que lembrar de onde eu coloquei que Root Certificate eu mudei para usar uma CA raiz autônoma em uma máquina virtual.

Se os certificados são passados ??apenas cerca internamente, entre seus próprios servidores (e não utilizados pelo cliente, de uma forma ou de outra) - então é perfeitamente aceitável usar seu próprio CA.
interna No entanto, uma sugestão - não ter seu Root CA emitir seus certificados provedor. Em vez disso, use o seu Root CA para criar uma CA intermediária - em seguida, usar isso para certificados de provedor de emissão. Isso irá ajudá-lo a longo prazo, quando você tem que começar a gerir a expiração do certificado, estendendo-se as listas de sistema / infra-estrutura, revogação, etc.

Não há problema real com o uso de um certificado auto-assinado em uso privado, que é usado quando você controla todos os sistemas que precisam confiar no certificado homebrew raiz.

Você instalar manualmente o certificado raiz em cada um dos sistemas que precisam confiar nele.

Você pode fazer isso na produção, bem como para o uso do navegador - por exemplo, dentro de uma organização onde a ca raiz pode ser implementado via método distrubution software - não há nenhuma razão para ir para a despesa de pagar uma Autoridade de Certificação que a Microsoft acontece a confiança.

[editar] Em termos de secruity a questão é uma das que contém a chave privada para o seu certificado de raiz, desde que você pode garantir que estadias privadas, em seguida, você pode validar qualquer certificado off essa raiz.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top