Autenticação por Certificado de Cliente do Secure Sockets Layer

O software do cliente com o qual você deseja estabelecer uma conexão segura com um servidor usando o protocolo Secure Socket Layer (SSL) é iniciado usando o protocolo SSL ou o protocolo avançado chamado Transport Layer Security (TLS) para executar um handshake de SSL com certificados SSL. Um certificado pessoal pode representar o servidor ou pode representar um cliente particular e ser assinado por uma Autoridade de Certificação (CA) para garantir que o certificado pessoal seja identificado corretamente.

O SSL assegura que o administrador possui o certificado de assinante de CA disponível que é usado para assinar o certificado pessoal e que ele está armazenado no cliente e/ou no armazenamento confiável do servidor. A autenticação por certificado de cliente do SSL ocorre durante o handshake da conexão usando certificados SSL.

Os seguintes eventos devem ocorrer durante este processo:
  • O lado do servidor deve determinar se a autenticação de cliente está ocorrendo. A autenticação de cliente deve ser ativada na configuração de SSL do servidor e a configuração do Common Secure Interoperability versão 2 (CSIv2) se o Inter-ORB Protocol (IIOP) for usado.
  • A configuração do CSIv2 deverá ocorrer em segurança global, não em um domínio de segurança.
  • O certificado de assinante do cliente deverá ser extraído do armazenamento de chave do cliente e incluído no armazenamento confiável do servidor.
  • O certificado de assinante do servidor deverá ser extraído do armazenamento de chave do servidor e incluído no armazenamento confiável do cliente.

Configurando um Servidor WebSphere para Autenticação de Cliente

A autenticação por certificado de cliente ocorrerá se o lado do servidor solicitar que o lado do cliente envie um certificado. Um servidor Websphere pode ser configurado para autenticação por certificado de cliente na configuração de SSL. Entretanto, se a autenticação de cliente for necessária para IIOP, então ela deverá ser configurada na configuração do CSIv2.

Para configurar a autenticação por certificado de cliente na configuração de SSL usando o console administrativo:
  1. Clique em Segurança > Certificado SSL e gerenciamento de chave > Configurações SSL.
  2. Selecione uma configuração de SSL.
  3. Em Propriedades Adicionais, selecione configurações de Qualidade de proteção(QoP).
  4. Em Autenticação de Cliente, selecione Necessária.
  5. Clique em OK para salvar as mudanças.
Nota: Também é possível usar o comando modifySSLConfig com o sinalizador -clientAuthentication definido como true para ativar a autenticação de cliente. Consulte o grupo de comandos SSLConfigCommands do objeto AdminTask para obter informações adicionais sobre esse comando.
.
Para configurar a autenticação do certificado de cliente em uma conexão de entrada do CSIv2 usando o console administrativo:
  1. Clique em Segurança > Segurança Global.
  2. Em Segurança RMI/IIOP, selecione Comunicações de Entrada de CSIv2.
  3. Na seção Camada de Transporte de CSIv2 e em Autenticação por Certificado de Cliente, selecione Necessário.
  4. Clique em OK para salvar as mudanças
Nota: Também é possível usar o comando configureCSIInbound com o sinalizador -clientCertAuth definido como Necessário para ativar a autenticação de cliente no CSIv2. Consulte o grupo de comandos SecurityConfigurationCommands do objeto AdminTask para obter informações adicionais sobre esse comando.

Se o lado do cliente estiver configurado para autenticação de cliente, o certificado de assinante do cliente deverá ser incluído no armazenamento confiável do servidor. Quando você tiver um certificado do cliente em um arquivo de certificado, ele poderá ser incluído no armazenamento confiável do servidor.

Para incluir um assinante no armazenamento confiável do servidor usando o console administrativo:
  1. Clique em Segurança > Certificado SSL e Gerenciamento de Chaves > Armazenamentos de Chaves e Certificados.
  2. Selecione o armazenamento confiável que está configurado para a autenticação de cliente.
  3. Em Propriedades Adicionais, selecione Certificados de Assinante.
  4. Clique em Incluir (Add).
  5. No campo Alias, digite um nome alternativo sob o qual armazenar o certificado.
  6. Na caixa de nome Arquivo, digite o caminho completo para o arquivo de certificado.
  7. Clique em OK para salvar as mudanças
Nota: Também é possível usar o comando addSignerCertificate para incluir um assinante no armazenamento confiável do servidor. Consulte o grupo de comandos SignerCertificateCommands do objeto AdminTask para obter informações adicionais sobre esse comando.
Nota: Se você estiver usando a autenticação de cliente em um ambiente de cluster, a autenticação de cliente deverá ser configurada para cada nó em que os servidores do cluster estão localizados.

Configurando o lado do cliente para autenticação de cliente

Clientes:

Clientes administrativos, thin clients ou clientes puros devem ter um certificado pessoal em seus armazenamentos de chave. O armazenamento de chave padrão do WebSphere Client que é criado quando o WebSphere Application Server é instalado já possui um certificado pessoal nele. Esse armazenamento de chave pode ser encontrado no arquivo ssl.client.props na propriedade com.ibm.ssl.keyStore. Os armazenamentos de chave cliente não são gerenciados pelo WebSphere Application Server, portanto o utilitário de Gerenciamento de Chave (iKeyman) ou o utilitário keytool Java™ pode ser usado para extrair o certificado para um arquivo de certificado.

Para extrair um certificado usando o iKeyman:
  1. Inicie o iKeyman.
  2. Selecione Arquivo do Banco de Dados de Chave > Abrir.
  3. Insira o caminho para o arquivo keystore. Isso pode ser obtido a partir do arquivo ssl.client.props.
  4. Clique em OK.
  5. Insira a senha para o armazenamento de chave e clique em OK
  6. Em Certificados Pessoais, selecione o certificado padrão do cliente.
  7. Insira um caminho e um nome de arquivo para o arquivo de certificado e clique em OK.

O arquivo que contém o certificado extraído pode ser usado para incluir o assinante no armazenamento de chave do servidor. Siga as etapas na seção "Configurando um servidor WebSphere para autenticação de cliente" para incluir este assinante no armazenamento de confiança do assinante.

Se a comunicação for sobre IIOP, as propriedades a seguir deverão ser definidas no arquivo sas.client.props.
  • Ative o SSL:
    	com.ibm.CSI.performTransportAssocSSLTLSSupported=true
    	com.ibm.CSI.performTransportAssocSSLTLSRequired=false 
  • Desative a autenticação de cliente na camada de mensagem:
    	com.ibm.CSI.performClientAuthenticationRequired=false
    	com.ibm.CSI.performClientAuthenticationSupported=false 
  • Ative a autenticação de cliente na camada de transporte (isso é suportado, mas não é obrigatório):
     com.ibm.CSI.performTLClientAuthenticationRequired=false
    	com.ibm.CSI.performTLClientAuthenticationSupported=true 

Thin clients e clientes puros não usam o arquivo de propriedades SSL do WebSphere Application Server, ssl.client.props. Eles geralmente usam as propriedades do sistema Java para definir o armazenamento de chave do cliente e o armazenamento confiável. O certificado de assinante do servidor deve ser incluído no armazenamento confiável que está especificado com a propriedade do sistema java.net.ssl.trustStore. Keytool ou iKeyman podem ser usados para incluir o certificado de assinante. O assinante deve ser extraído do certificado pessoal no armazenamento de chave especificado pela propriedade do sistema javax.net.ssl.keyStore e incluído no armazenamento confiável do servidor.

Por exemplo:
javax.net.ssl.keyStore
javax.net.ssl.keyStorePassword
javax.net.ssl.keyStoreType
javax.net.ssl.trustStore
javax.net.ssl.trustStorePassword
javax.net.ssl.trustStoreType

Servidor agindo como um cliente:

O cliente pode ser um servidor WebSphere agindo como um cliente. Nesse caso, determine qual configuração SSL está sendo usada como o Lado do cliente da comunicação, extraia o assinante do seu certificado e inclua-o no armazenamento confiável do lado do servidor. É recomendável que seja usado o assinante do certificado raiz.

Para extrair o certificado raiz usando o console administrativo:
  1. Clique em Segurança > Certificado SSL e gerenciamento de chave > Armazenamentos e certificados de chaves.
  2. Na lista suspensa Usos do Keystore, selecione Keystore do Certificado Raiz.
  3. Selecione DmgrDefaultRootStore (para um servidor de implementação de rede) ou NodeDefaultRootStore (para um servidor de aplicativos).
  4. Em Propriedades Adicionais, selecione Certificados Pessoais.
  5. Selecione o certificado raiz padrão (geralmente chamado raiz), e clique em Extrair.
  6. Na caixa de nome Arquivo de Certificado, digite um caminho completo para o arquivo, no qual manter o certificado.
  7. Clique em OK para salvar.
Nota: Também é possível usar o comando extractCertificate para extrair o certificado raiz. Consulte o grupo de comandos PersonalCertificateCommands do objeto AdminTask para obter informações adicionais sobre esse comando.

O arquivo de certificado que é criado pode ser carregado para o lado do servidor e incluído no armazenamento confiável do servidor.

Quando um servidor age como um cliente, o servidor do lado do cliente exige o assinante do servidor de destino. O assinante pode ser recuperado usando a opção Recuperar da Porta do certificado de assinante.

Para recuperar o assinante da porta usando o console administrativo:
  1. Clique em Segurança > Certificado SSL e Gerenciamento de Chaves > Armazenamentos de Chaves e Certificados.
  2. Selecione o armazenamento confiável do servidor da coleção.
  3. Em Propriedades Adicionais, selecione Certificados de Assinante.
  4. Clique em Recuperar da Porta.
  5. Insira um nome de host de destino e um nome de porta de destino.
  6. Insira um nome alternativo para o certificado.
  7. Clique em Recuperar Informações do Signatário.
  8. Clique em OK para salvar.

Também é possível usar o comando retrieveSignerFromPort para recuperar o assinante da porta. Consulte o grupo de comandos SignerCertificateCommands do objeto AdminTask para obter informações adicionais sobre esse comando.

Configurando um navegador para a autenticação de cliente:

Quando o WebSphere Application Server estiver configurado para autenticação por certificado de cliente e for feita uma tentativa de acessar o servidor a partir de um navegador, o navegador deverá ter um certificado para a autenticação por certificado de cliente. Se a configuração SSL padrão do servidor foi modificada para ativar a autenticação por certificado de cliente, não será possível efetuar login no console administrativo.

É possível criar um certificado para o navegador usando o console administrativo. Você deve primeiro criar um armazenamento de chave e, em seguida, criar um certificado em cadeias. Depois que o certificado for criado, use as instruções do seu navegador para importar um certificado. Os navegadores exigem que cada parte da cadeia seja incluída para verificar o certificado, de modo que o certificado raiz seja extraído e incluído no navegador. Siga as instruções na seção "Configurando o lado do cliente para autenticação de cliente" para obter informações sobre como extrair o certificado raiz.

Para criar um armazenamento de chave usando o console administrativo:
  1. Clique em Segurança > Certificado SSL e Gerenciamento de Chaves > Armazenamentos de Chaves e Certificados.
  2. Clique em Novo.
  3. Insira um nome para o armazenamento de chave.
  4. Insira o caminho completo para o arquivo de armazenamento de chave.
  5. Insira uma senha para o armazenamento de chave e confirme.
  6. Clique em OK para salvar.
Para criar um certificado em cadeias usando o console administrativo:
  1. Clique em Segurança > Certificado SSL e Gerenciamento de Chaves > Armazenamentos de Chaves e Certificados.
  2. Selecione o armazenamento de chave criado anteriormente.
  3. Em Propriedades Adicionais, clique em Certificados Pessoais.
  4. Na lista suspensa, no botão Criar, selecione Certificado em Cadeias.
  5. Insira um nome alternativo para o certificado.
  6. Forneça um nome comum para o certificado. O nome é a parte "CN=" do sujeito DN.
  7. É possível inserir informações em quaisquer dos campos restantes para criar o DN do assunto do certificado em cadeias.
  8. Clique em OK para salvar.

Também é possível usar o comando createKeyStore para criar um armazenamento de chave. Consulte o grupo de comandos KeyStoreCommands do objeto AdminTask para obter informações adicionais sobre esse comando.

Também é possível usar o comando createChainedCertificate para criar um certificado em cadeias. Consulte o grupo de comandos PersonalCertificateCommands do objeto AdminTask para obter informações adicionais sobre esse comando.

Nota: Quando a autenticação por certificado de cliente estiver ativada, a autenticação por certificado da Web poderá ser então executada conforme discutido na próxima seção.

Autenticação por Certificado da Web

A autenticação base por certificado pode ser executada nos módulos da Web do Java 2 Platform, Enterprise Edition (J2EE) quando o módulo estiver configurado para autenticação por certificado de cliente. Isso permite que um usuário faça login em um módulo da Web usando um certificado para autenticação e para mapear esse certificado para um usuário do registro.

A ativação da autenticação do certificado da Web exige que a configuração SSL do servidor seja configurada para autenticação por certificado de cliente no servidor em que o módulo está instalado.

O lado do servidor determina que a autenticação de cliente deve ocorrer. Consulte a seção "Configurando um servidor WebSphere para autenticação de cliente" para obter informações sobre como configurar autenticação de cliente. O lado do cliente deve ter o assinante do servidor para incluir no armazenamento confiável do cliente. Consulte a seção "Configurando o lado do cliente para autenticação de cliente" para obter mais informações.

O arquivo web.xml do módulo da Web deve ter o método de autenticação definido como CLIENT-AUTH na seção login-config do arquivo web.xml:

<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>

O certificado deve mapear para um usuário do registro ou você não poderá efetuar login nesse módulo da Web.

Para registros do usuário do S.O. local, o valor de CN do DN de assunto do certificado deve mapear para um usuário no registro do usuário do S.O. local. Por exemplo, se o DN do assunto do certificado for CN=tester,o=ibm,c=us, então tester será o usuário procurado no registro do usuário local. Se esse usuário não existir no registro local, então a autenticação falhará.

O registro do usuário do Lightweight Directory Access Protocol (LDAP) fornece mais opções para mapeamento de um certificado para uma identidade do usuário. O modo de mapeamento de certificado padrão no LDAP é usado para uma correspondência exata de DN entre a entrada do registro LDAP e o DN do assunto no certificado. Por exemplo, se o DN do certificado for CN=user1,o=ibm,c=us, então deverá haver uma entrada no registro LDAP com esse valor exato. O registro do usuário LDAP tem também uma opção de filtro de certificado que pode fornecer uma correspondência com uma parte particular do DN de assunto do certificado com relação às entradas no repositório LDAP. Para obter mais detalhes sobre mapeamento de certificado LDAP, leia "Definições de configuração de repositório Lightweight Directory Access Protocol".

Em uma configuração de repositórios federados, por padrão, o login de certificado de cliente não é suportado para o repositório baseado no arquivo. Para ativar o suporte para mapeamento de certificado no repositório baseado em arquivo, siga o procedimento no tópico Ativando suporte de login de certificado de cliente em um repositório baseado em arquivo de repositórios federados.

O registro de LDAP do repositório federado suporta o mapeamento de certificado. Ele usa as mesmas regras e propriedades de mapeamento usadas pelo registro do usuário LDAP.

O registro do usuário customizado pode mapear certificados para um usuário se o registro customizado implementou o método mapCertificate().


Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_ssl_clientauth
Nome do arquivo: csec_ssl_clientauth.html