Conhecimento sobre tecnologia

Como Configurar Business Service do OSB 12c para Acessar Serviço Externo SSL com “Certificado Client”

Onde queremos chegar com este tutorial?

Queremos acessar um serviço externo do barramento que utilize autenticação SSL “Certificado Client”. Muito utilizado em situações de integrações bancárias e transmissão de notas fiscais por exemplo.

 

 

As chaves e certificados

Para realizar essa configuração você já deve ter enviado seu certificado (arquivo .cer) para o servidor externo que realizará o acesso.

Para geração do certificado foi utilizado uma par de chaves, pública e privada (arquivo .p12). Esta chave utilizada deve ser adicionado em um Java Key Store (arquivo .jks)

Obs.: Guarde os passwords da chave e do keystore, serão usados futuramente.

Para realizar a tarefa tem uma ferramenta visual bem fácil de usar que é a “KeyStore Explorer” para Windows, você pode baixar aqui.

Nela você poderá criar um JKS, ou exportar certificados, chave privada, pública e por aí vai, é como se fosse um keytool visual.

 

 

Validação da Conexão com SSL

Para validarmos a chave antes da configuração recomendo utilizar o SOAP UI para realizar a requisição com SSL, então vamos ver como faz isso.

Link de download do Soap UI aqui.

Vamos atribuir um JKS as configurações de requisições SSL do SoapUI, ir em “Preferences” e:

Pronto! Basta carregar o WSDL da requisição que exige SSL e executar a requisição via SoapUI, já é para estar funcionando.

Se funcionou tudo certinho vamos ao que interessa.

 

 

Configuração Weblogic PKICredentialMapper – Oracle Service Bus 12c – (OSB)

 

Passo 1 – Configurar um PKICredentialMapper no Console do Weblogic que será responsável por mapear o JKS com as chaves necessárias.

Obs.: Entenda a seleção em amarelo como os cliques e modificações que devem ser feitas.

Acessar Realms de Segurança -> my realm -> Provedores -> Mapeamento de Credencias -> Novo

 

Passo 2 –

 

Passo 3 – 

 

Passo 4 –

Após este passo é necessário reiniciar o servidor.

 

 

Configuração ServiceKeyProvider

Iremos configurar agora o ServiceKeyProvider, que fará vinculação da chave no Business Service e Proxy Service.

A configuração será feito diretamente no Service Bus Console, recomendado é que este componente seja exportado após configuração e importado no JDeveloper para que replique diretamente nos deploy

 

Passo 1 – Acessar Service Bus Console e configurar chave no projeto já “deployado”.

http://localhost:7001/servicebus

Clicar em “Criar” para liberar a edição do projeto

 

Passo 2 –  Selecionar uma pasta para o “Provedor de Chave de Serviço” e adicionar

 

Passo 3 – 

 

Passo 4 –

 

Passo 5 – Essa tela carrega a chave de autenticação configurada no PKICredentialMapper, selecionar a chave, inserir a senha e salvar.

 

Passo 6 – Não esqueça de ir salvando todas as alterações realizadas

 

Passo 7 – Abrir o Business Service do projeto que será utilizado o serviço externo e habilitar a opção Certificado Cliente. Neste caso essa configuração pode ser feita também diretamente no JDeveloper para vir no deploy.

 

Passo 8 – Abrir o Proxy Service e vincular o ServiceKeyProvider para que utilize no acesso aos Business Service.

 

Passo 9 – Salvar todas alterações e clicar em “Ativar”

Pronto! Configuração realizada, basta testar!

 

 

Para Testar

 

Passo 1 – No próprio Business Service aberto clicar no “Play” para iniciar os testes

 

Passo 2 – Expandir o “Transporte” e vincular o Provedor de Chave de Serviço

 

Passo 3 – Selecionar o Provedor de Chave de Serviço criado.

 

Passo 4 – Colocar senha do certificado e Executar o teste

Pronto, ao final desse passo o teste deve ter executado com sucesso!

 

 

Caso ocorra o seguinte erro:

 A chamada resultou em um erro: Error signing certificate verify. 

Pude identificar que este erro ocorre devido a um bug no JDK 1.7 0.80 para baixo. (Não testei em versões mais recentes).

Detalhando melhor o stacktrace do erro pode-se identificar o seguinte detalhe:

Caused By: java.security.NoSuchAlgorithmException: SHA224withRSA Signature not available

Significa que o certificado que está sendo utilizado não é suportado pelo JDK 1.7, a assinatura SHA224withRSA pelo que pude perceber aparece apenas no JDK 1.8.

Até na criação deste post o JDK 1.7 não possui esse FIX.

Aguardamos o FIX ainda pro JDK 1.7.

Ao executar o Oracle Service Bus 12c com JDK 1.8 o erro não ocorre.

Qualquer dúvida só comentar aí embaixo.

Abcs.

No Comments Yet

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Publicidade