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.
- 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.
- Clique em .
- Selecione uma configuração de SSL.
- Em Propriedades Adicionais, selecione configurações de Qualidade de proteção(QoP).
- Em Autenticação de Cliente, selecione Necessária.
- Clique em OK para salvar as mudanças.
- Clique em .
- Em Segurança RMI/IIOP, selecione Comunicações de Entrada de CSIv2.
- Na seção Camada de Transporte de CSIv2 e em Autenticação por Certificado de Cliente, selecione Necessário.
- Clique em OK para salvar as mudanças
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.
- Clique em .
- Selecione o armazenamento confiável que está configurado para a autenticação de cliente.
- Em Propriedades Adicionais, selecione Certificados de Assinante.
- Clique em Incluir (Add).
- No campo Alias, digite um nome alternativo sob o qual armazenar o certificado.
- Na caixa de nome Arquivo, digite o caminho completo para o arquivo de certificado.
- Clique em OK para salvar as mudanças
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.
- Inicie o iKeyman.
- Selecione .
- Insira o caminho para o arquivo keystore. Isso pode ser obtido a partir do arquivo ssl.client.props.
- Clique em OK.
- Insira a senha para o armazenamento de chave e clique em OK
- Em Certificados Pessoais, selecione o certificado padrão do cliente.
- 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.
- 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.
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.
- Clique em Segurança > Certificado SSL e gerenciamento de chave > Armazenamentos e certificados de chaves.
- Na lista suspensa Usos do Keystore, selecione Keystore do Certificado Raiz.
- Selecione DmgrDefaultRootStore (para um servidor de implementação de rede) ou NodeDefaultRootStore (para um servidor de aplicativos).
- Em Propriedades Adicionais, selecione Certificados Pessoais.
- Selecione o certificado raiz padrão (geralmente chamado raiz), e clique em Extrair.
- Na caixa de nome Arquivo de Certificado, digite um caminho completo para o arquivo, no qual manter o certificado.
- Clique em OK para salvar.
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.
- Clique em .
- Selecione o armazenamento confiável do servidor da coleção.
- Em Propriedades Adicionais, selecione Certificados de Assinante.
- Clique em Recuperar da Porta.
- Insira um nome de host de destino e um nome de porta de destino.
- Insira um nome alternativo para o certificado.
- Clique em Recuperar Informações do Signatário.
- 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.
- Clique em .
- Clique em Novo.
- Insira um nome para o armazenamento de chave.
- Insira o caminho completo para o arquivo de armazenamento de chave.
- Insira uma senha para o armazenamento de chave e confirme.
- Clique em OK para salvar.
- Clique em .
- Selecione o armazenamento de chave criado anteriormente.
- Em Propriedades Adicionais, clique em Certificados Pessoais.
- Na lista suspensa, no botão Criar, selecione Certificado em Cadeias.
- Insira um nome alternativo para o certificado.
- Forneça um nome comum para o certificado. O nome é a parte "CN=" do sujeito DN.
- É possível inserir informações em quaisquer dos campos restantes para criar o DN do assunto do certificado em cadeias.
- 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.
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().