Dois armazenamentos de certificados, dois certificados, um host

1

Eu tenho um aplicativo (Cognos) que entrega páginas da Web através de dois mecanismos: via IIS e por meio de um aplicativo Java. Precisamos ativar o SSL para ambos. IIS foi feito. Estamos trabalhando no applet Java agora.

O certificado IIS foi gerado pela criação de uma solicitação cert no IIS, enviando-o para a CA. Eles retornaram um certificado que instalamos no IIS e isso é bom - podemos acessar essas páginas no navegador usando HTTPS.

Eu tentei importar esse mesmo certificado para o armazenamento de certificados de aplicativos java. No entanto, recebi erros específicos de uma aplicação.

Isso foi feito usando a ferramenta de linha de comando especial do aplicativo.

Mas, basicamente, parece que está tentando substituir o certificado existente não assinado no alias criptografia por um certificado assinado.

Aqui está a página que mostra o processo usando a ferramenta GUI fornecida

link

Meu problema é que o certificado já foi retornado da CA e eu não criei uma solicitação nesta ferramenta.

Eu tenho um certificado válido, mas não consigo seguir estas instruções porque elas supõem que a solicitação foi gerada a partir desse keystore.

Passando pelo processo, parece que precisamos gerar um CSR no repositório de certificados do Cognos, enviar para a autoridade de certificação e obter outro certificado para o mesmo host , mas diferente CSR de origem.

Isso significa que temos dois certificados para o mesmo host, o que não faz sentido para mim.

Principalmente:

  1. Você pode ter dois ou mais certificados ativos para o mesmo host?
  2. Se eu tiver um certificado gerado de um CSR do keystore A, há alguma maneira de importar e usá-lo no keystore B no mesmo servidor? Preciso de alguma coisa do pedido original para fazer isso?

EDITAR:

Conforme continuo pesquisando, percebo que quando a solicitação é gerada, ela salva uma chave privada no keystore. Então eu acho que o problema não é que eu tenha dois keystores, o problema é que eu não sei como reutilizar a chave privada do keystore original no segundo keystore

    
por Nick.McDermaid 29.11.2017 / 23:39

3 respostas

1

Uma CA pode aprovar uma solicitação para vários acessos de clientes ou um único certificado para cada domínio em um host único ( demonstra como atribuir cada um usando hosts virtuais)

Para responder à sua segunda pergunta, consulte esta resposta para outra pergunta semelhante sobre como exportar e importar certificados.

    
por 29.11.2017 / 23:58
1

Você precisará exportar a chave e o certificado do IIS. Você deve poder exportar isso em um arquivo PKCS7. Use keytool para importar isso para seu armazenamento de chaves java. (Também é possível usar o arquivo PKCS7, se desejar.)

Se o IIS estiver entregando o applet, você não precisará de um certificado de servidor para o applet. Se você estiver usando um servidor diferente para entregar o applet, precisará importar a chave para esse servidor.

Espero que o seu problema seja com a assinatura do applet. Sua chave não pode ser marcada como utilizável para assinatura de código. Use uma ferramenta como keytool ou um navegador para exibir os sinalizadores no certificado. É possível ter um certificado que seja útil para um servidor e assinatura de código.

EDIT: Parece que você tem um certificado que é bom para ambos os códigos de assinatura. (Você deve assinar seu applet.) E também parece ser válido para criptografia (HTTTPS). Se você deseja usá-lo para HTTPS, ele deve ter um Nome Alternativo de Assunto para cada domínio com o qual você deseja usá-lo. Isso permitirá a validação de que o certificado é para o domínio.

Normalmente, você não usaria um applet como um servidor. Pode abrir conexões para o servidor do qual foi carregado para procurar classes adicionais. Também pode estar abrindo conexões adicionais para outros servidores. Os navegadores modernos desejarão que você especifique o acesso que o applet precisa para que o usuário possa verificar se deseja ou não concedê-los.

    
por 30.11.2017 / 02:09
0
keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12 
-destkeystore clientcert.jks -deststoretype JKS

Isso deve importar seu pfx para o keystore. Foi o que eu usei da última vez que tive que importar o pfx

    
por 30.11.2017 / 09:33