Alguém pode me dizer como adiciono um número de nomes alternativos de assuntos a um CSR existente?
Não estou falando sobre gerar um CSR com SANs ou adicionar SANs no momento da assinatura - eu sei como fazer essas duas coisas.
Antecedentes: O problema que temos é que o chassi blade HP permite gerar CSRs, mas eles permitem apenas uma única SAN. Não podemos usar um CSR gerado em outro lugar, pois não conseguimos usar o certificado resultante, pois não há como (que eu possa encontrar) carregar a chave no chassi do blade.
O processo padrão da nossa CA não permite adicionar SANs na hora da assinatura. Eles estão dispostos a experimentar, no entanto, estou tentando encontrar uma solução no final, pois isso significa que não precisaremos contar com um processo não padrão para nós - na minha experiência, se eles precisarem usar um processo não padrão a vida acabará ficando difícil. Por exemplo, quando um membro da equipe que conhece o processo fora do padrão não está presente devido à saída etc.
O método atual é conectar-se ao administrador de bladechassis a bordo via web gui e gerar o CSR com um único CN.
O GUI da Web permite apenas uma única SAN no CSR.
Em seguida, assinamos com a seguinte estrofe na configuração openssl:
[ v3_ca ]
subjectAltName = "DNS:bladesystem8,DNS:bladesystem8.services.adelaide.edu.au,DNS:bladesystem8-backup,DNS:bladesystem8-backup.services.adelaide.edu.au"
O certificado resultante possui as SANs extras.
fonte
Respostas:
Se o seu chassi não suportar a adição de SANs, será necessário retirar a chave do chassi e gerar o CSR com o openssl.
Verifique se não
req_extensions = v3_req
está comentado na[ req ]
seção.Adicione o
subjectAltName
à[ v3_req ]
seção.Gere um novo CSR.
Você não pode editar um CSR existente.
fonte
Nota importante: Tudo isso é um pouco especulativo; portanto, se você está profundamente envolvido no código e não concorda com o que estou dizendo, acredite no código. Não sou especialista em CA, apenas jogo na TV. Dito isto:
Como um recurso de CSRs, será difícil. A etapa final na geração de um CSR programaticamente é fazer o hash de tudo que você criou e assiná-lo com a chave privada. Portanto, embora você pudesse adicionar esses atributos ao texto do CSR, a assinatura não corresponderia ao conteúdo, portanto, nenhuma autoridade de certificação o assinaria.
No seu caso, você controla (ou pelo menos está em contato com) a CA. Isso oferece duas opções:
Destes, o número 1 parece de longe o mais fácil. Você precisará quebrar o selo inviolável do OpenSSL para fazer isso, mas ele tem algumas funções que devem facilitar um pouco. Eu começaria com asn1parse, que mostrará como separar o CSR.
fonte
site.com
a umwww.site.com
certificado como uma SAN).Embora a resposta da cakemox seja definitivamente a mais fácil, se você puder obter uma cópia da chave privada, existe outra maneira, se você não puder basicamente assinar novamente o CSR usando um certificado "Agente de inscrição".
Esta publicação no blog css-security.com tem todos os detalhes básicos. Mas a visão geral de alto nível do processo é assim:
Quando tentei isso pessoalmente, tenho certeza de que pulei a parte sobre a modificação do modelo de certificado. Presumindo que você possa gerar um certificado de Agente de inscrição para si mesmo, o processo real se parece com isso.
Crie um san.inf com as informações da extensão SAN
Assinar novamente a solicitação
Envie a solicitação corrigida
E, em seguida, prossiga normalmente com o processo de emissão.
fonte