Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Habilitando SSL ou TLS no Oracle Apps R12


A segurança é uma grande preocupação hoje.Aqui estão as etapas Habilitando SSL no Oracle Apps R12

Índice

Introdução:

  • Os dados entre o navegador da Web e o servidor da Web viajam sem criptografia no aplicativo R12. Assim, a senha e outras informações podem ser rastreadas pelo sniffer. Eles podem obter seu nome de usuário/senha ou quaisquer dados confidenciais. Isso se torna crítico quando você tem acesso à Internet aos aplicativos Oracle
  • Com a implementação do SSL, os dados trafegam nos formulários criptografados e somente o navegador da Web e o servidor da Web podem descriptografá-los. A implementação requer o certificado SSL e a configuração no ambiente R12   conforme a configuração

O que é SSL?


SSL e TLS são o protocolo criptográfico que garante a privacidade entre aplicativos de comunicação e seus usuários na Internet

O que são certificados SSL


SSL usa 2 tipos de Certificados:

Certificados de usuário:

Estes são Certificados emitidos para servidores ou usuários para provar sua identidade em uma troca de chave pública/chave privada.

Certificados confiáveis:
São certificados que representam entidades nas quais você confia, como autoridades de certificação que assinam os certificados de usuário que emitem.

Secure Sockets Layer (SSL)


SSL é uma tecnologia que define as funções essenciais de autenticação mútua, criptografia de dados e integridade de dados para transações seguras. A troca de dados entre o cliente e o servidor em tais transações seguras é chamada de Secure Sockets Layer (SSL).

Segurança da Camada de Transporte (TLS)


O Transport Layer Security é um protocolo criptográfico que garante privacidade entre aplicativos de comunicação e seus usuários na Internet. Embora o SSL seja compatível com todas as versões do Oracle Application Server, o TLS requer no mínimo o Application Server 10.1.2.0. O Oracle Applications Release 12 suporta o uso de SSL e TLS.

Como o SSL funciona

  1. O cliente envia uma solicitação ao servidor usando o modo de conexão HTTPS.
  2. O servidor apresenta seu certificado digital ao cliente. Este certificado contém as informações de identificação do servidor, como nome do servidor, organização e chave pública do servidor e assinatura digital da chave privada da CA
  3. O cliente (navegador da web) possui as chaves públicas de todas as CA. Descriptografa a chave privada do certificado digital Esta verificação comprova que o remetente teve acesso à chave privada e, portanto, é provável que seja a pessoa associada à chave pública. Se a verificação for boa, o servidor será autenticado como um servidor confiável.
  4. O cliente envia ao servidor uma lista dos níveis de criptografia, ou cifras, que ele pode usar.
  5. O servidor recebe a lista e seleciona o nível mais forte de criptografia que eles têm em comum.
  6. O cliente criptografa um número aleatório com a chave pública do servidor e envia o resultado para o servidor (que somente o servidor deve conseguir descriptografar com sua chave privada); ambas as partes usam o número aleatório para gerar uma chave de sessão exclusiva para criptografia e descriptografia subsequentes de dados durante a sessão

Portanto, fica claro a partir das etapas acima, precisaremos de um certificado digital para o servidor web e usamos a carteira Oracle em 10.1.3 para armazenar o certificado

Várias topologias de SSL no Oracle Apps R12


A implementação ssl dependerá da topologia da implementação R12. Estou aqui destacando todos os principais. Isso é válido para Implementação R12.0 e R12.1.
  • Uma única implantação de servidor da Web.

Isso é bem simples. Vamos precisar do certificado digital para o servidor web. Os passos são diretos. O tráfego entre o navegador da web e o servidor da web será criptografado
  • Ter um balanceador de carga que está servindo para 2 ou mais servidores web torna isso um pouco complicado

Neste caso, poderíamos ter as seguintes opções
  1. Criptografia de tráfego de ponta a ponta

Todo o fluxo de tráfego, ou seja, do navegador para o balanceador de carga e do balanceador de carga para o servidor web é criptografado

Existem duas maneiras de fazê-lo

(a) Configuração de passagem :O balanceamento de carga neste caso não descriptografa/criptografa a mensagem. Apenas passa pelo tráfego para o servidor web
Considerações importantes
Ao configurar o Ebusiness Suite com hardware de balanceamento de carga, você teria visto em vários lugares a necessidade de configurar a persistência baseada em cookies. O problema que temos aqui é que quando a passagem SSL está em vigor, a persistência do cookie não funcionará porque o cookie é criptografado pelo Ebusiness Suite e o balanceador de carga não poderá ler as informações do cookie necessárias para manter a persistência.Aqui está um extrato de F5 documentação que explica isso com mais detalhes
Fonte:
http://devcentral.f5.com/Tutorials/TechTips/tabid/63/articleType/ArticleView/articleId/262/Persisting-SSL-Connections.aspx
Para configurações de SSL Pass-through, as opções de persistência são severamente limitadas:Como o LTM não está descriptografando a conversa, apenas as informações não criptografadas por SSL na sessão estão disponíveis para uso como identificador de sessão. As partes principais de informações não criptografadas persistentes em um fluxo SSL criptografado são os endereços IP de origem e destino e o próprio ID da sessão SSL, portanto, somente Endereço de origem, Endereço de destino ou persistência SSL funcionarão com as configurações de passagem SSL. Ao usar a persistência de endereço de origem, isso pode criar uma situação em que os clientes que acessam o sistema de um dispositivo do tipo proxy ficarão todos presos na mesma camada de aplicativo, causando um desequilíbrio de tráfego na camada de aplicativo. Portanto, é preferível usar algo mais exclusivo, como o ID da sessão SSL.
Recomendamos definir a persistência SSL como o método de persistência principal e, em seguida, definir o endereço de origem como um método de persistência de backup para manter novas conexões no mesmo servidor, mesmo que o SSL O ID da sessão altera a sessão no meio do aplicativo. Também é uma prática recomendada configurar a camada do aplicativo para minimizar o número de renegociações de sessão SSL, consulte os guias de administração do servidor de aplicativos apropriados para obter mais informações. Perfil de endereço de origem.
No entanto, você pode simplesmente executar o perfil de endereço de origem por conta própria se o IP do cliente estiver sendo passado para o balanceador de carga.
Observação:o tempo limite de persistência atribuído ao perfil de endereço de origem ou o O perfil SSL deve ser aumentado para o valor recomendado da Oracle de 12 horas.
(b) Descriptografia/criptografia :O balanceamento de carga, neste caso, descriptografa o tráfego no nível do balanceador de carga e, em seguida, criptografa-o novamente e envia-o para o servidor web, que o descriptografa novamente

2) Terminador SSL:O tráfego entre o navegador da web e o balanceador de carga é apenas criptografado. O balanceamento de carga atua como terminador de SSL e encerra o SSL no nível do balanceador de carga e passa o tráfego não criptografado para o servidor web. Tem os seguintes benefícios.
Custo de gerenciamento reduzido:apenas 1 certificado precisa ser mantido (no LBR) em vez de vários certificados em várias camadas de aplicativos
Melhoria de desempenho:descarregar a criptografia SSL e a descriptografia para o balanceador de carga melhora significativamente o desempenho reduzindo a carga da CPU. Como os clientes estão agora recebendo certificados SSL com chaves de 2.048 bytes, a carga da CPU de processamento de SSL na camada do aplicativo será 5 vezes maior do que usar a chave SSL de 1.024 bytes herdada
As etapas para realizar a configuração em cada topologia são fornecidas abaixo

Um único SSL de implantação de servidor web no Oracle Apps R12


Etapa 1

Defina seu ambiente
  1. Faça logon no nível do aplicativo como o usuário do SO que possui os arquivos do nível do aplicativo.
  2. Origem do arquivo de ambiente da camada do aplicativo (APPS.env) localizado no diretório APPL_TOP.
  3. Navegue até $INST_TOP/ora/10.1.3 e obtenha o arquivo .env para definir suas variáveis ​​10.1.3 ORACLE_HOME.

Observação:ao trabalhar com carteiras e certificados, você deve usar os executáveis ​​10.1.3.

Observação importante

Se você estiver usando clientes (JRE 8, alguns navegadores modernos) ou Oracle Database 12c, deverá realizar o seguinte:

– Atualize o FMW 10.1.3 para 10.1.3.5
– Aplique a CPU de outubro de 2015 (Patch 21845960).

Etapa 2

Crie uma carteira
  1. Navegue até o diretório $INST_TOP/certs/Apache.
  2. Mova os arquivos de carteira existentes para um diretório de backup caso deseje usá-los novamente no futuro.
  3. Abra o gerenciador de carteiras como um processo em segundo plano:
$ owm &

No menu do Oracle Wallet Manager, navegue até Wallet> New.

Responda NÃO para:Seu diretório de carteira padrão não existe. Deseja criá-lo agora?

A tela da nova carteira agora solicitará que você insira uma senha para sua carteira

Digite a senha e lembre-se dela

Uma nova carteira vazia foi criada. Deseja criar uma solicitação de certificado neste momento?

Depois de clicar em "Sim" na tela Criar solicitação de certificado aparecerá

Preencha os valores apropriados onde:
Nome comum É o nome do seu servidor incluindo o domínio.
Unidade organizacional:(opcional) A unidade em sua organização.
Organização É o nome da sua organização
Localidade/Cidade É sua localidade ou cidade.
Estado/Província é o nome completo do seu estado ou província, não abrevie.

Selecione seu país na lista suspensa e, para o tamanho da chave, selecione 2048 no mínimo. Clique OK.

Observação:dependendo do seu provedor de certificados, eles podem não aceitar a solicitação de certificado baseada em MD5 (CSR) gerada pelo Oracle Wallet Manager (OWM). Por exemplo, a VeriSign agora aceitará apenas CSRs baseados em SHA12048 bits ou superior. Nesses casos, você precisará converter o CSR MD5 em um CSR baseado em SHA1 adequado.

Clique em No certificado solicitado

Você precisará exportar a Solicitação de Certificado antes de enviá-la a uma Autoridade de Certificação.
  1. Clique em Certificado [Solicitado] para destacá-lo.
  2. No menu, clique em Operações>

Solicitação de certificado de exportação
  1. Salve o arquivo como server.csr
  2. No menu, clique em Wallet e, em seguida, clique em Salvar.
  3. Na tela Selecionar diretório, altere o diretório para seu diretório de carteira totalmente qualificado.
  4. Clique em OK.
  5. No menu, clique em Carteira e marque a caixa Login automático.

Certifique-se de tornar esta senha algo que você vai se lembrar. Você precisará usar a senha sempre que abrir a carteira com o Oracle Wallet Manager ou realizar operações na carteira usando a Interface de Linha de Comando. Com o login automático ativado, os processos enviados pelo usuário do SO que criou a carteira não precisarão fornecer a senha para acessar a carteira.
  1. Saia do Gerenciador de carteiras.

O diretório wallet agora conterá os seguintes arquivos:
cwallet.sso
ewallet.p12
server.csr

Agora você pode enviar server.csr  à sua autoridade de certificação para solicitar um certificado de servidor

Etapa 5

Importe seu certificado de servidor para a carteira

Depois de receber seu Certificado de Servidor de sua Autoridade de Certificação, você precisará importá-lo para sua carteira. Copie o certificado para tech.crt no diretório wallet em seu servidor por um dos seguintes métodos:
  1. ftp o certificado (no modo binário)
  2. copie e cole o conteúdo em server.crt

Siga estas etapas para importar o tech.crt para sua carteira:
  1. Abra o Wallet Manager como um processo em segundo plano:

$ owm &
  1. No menu, clique em Carteira e em Abrir.
  2. Responda Sim quando solicitado:

Seu diretório de carteira padrão não existe.

Você quer continuar?
  1. Na tela Selecionar diretório, altere o diretório para seu diretório de carteira totalmente qualificado e

Clique OK
  1. Digite a senha da sua carteira e clique em OK.
  2. No menu do Oracle Wallet Manager, navegue até Importação de operações

Certificado de usuário.

Os certificados de servidor são um tipo de certificado de usuário. Como a autoridade de certificação emitiu um certificado para o servidor, colocando seu nome distinto (DN) no campo Assunto, o servidor é o proprietário do certificado, portanto, o "usuário" desse certificado de usuário.
  1. Clique em OK.
  2. Clique duas vezes em server.crt para importá-lo.
  3. Salve a carteira:
  4. No menu do Oracle Wallet Manager, clique em Wallet.
  5. Verifique se a caixa Login automático está marcada.
  6. Clique em Salvar

Nota:Se todos os certificados confiáveis ​​que compõem a cadeia de server.crt não estiverem presentes na carteira, a adição do certificado falhará. Quando a carteira foi criada, os certificados para as CAs mais comuns (como VeriSign, GTE e Entrust) foram incluídos automaticamente. Entre em contato com sua autoridade de certificação se precisar adicionar seu certificado e salve o arquivo fornecido como ca.crt no diretório wallet em um formato base64. Outra opção é seguir as instruções abaixo para criar ca.crt a partir do certificado do seu servidor (server.crt). Se sua Autoridade de Certificação forneceu um certificado intermediário (para completar a cadeia), salve o arquivo fornecido como intca.crt em um formato Base64, ele precisará ser importado para o Oracle Wallet Manager antes de importar o server.crt. Os certificados que compreendem várias partes (como o tipo P7B) também se enquadram nessa categoria

Criação do certificado da sua autoridade de certificação

Para criar ca.crt
  1. Copie tech.crt para o seu PC (se necessário) usando um dos seguintes métodos:

ftp (no modo binário) tech.crt para o seu PC copie o conteúdo de server.crt e cole no bloco de notas do PC. Salve o arquivo como server.crt
  1. Clique duas vezes em server.crt para abri-lo com a extensão Cyrpto Shell.
  2. Na guia Caminho de certificação, clique na primeira linha (superior) e depois em Exibir certificado.
  3. Na guia Detalhes, clique em Copiar para arquivo, isso iniciará o assistente de exportação.
  4. Clique em Avançar para continuar.
  5. Selecione X.509 codificado em Base64 (.CER) e clique em Avançar.
  1. Clique em Procurar e navegue até o diretório de sua escolha.
  2. Digite ca.crt como o nome e clique em ok para exportar o certificado.
  3. Feche o assistente.
  4. Copie ca.crt de volta para o diretório da sua carteira (se necessário) usando um dos seguintes métodos:

ftp (no modo binário) ca.crt no diretório de carteira de nível de aplicativo copie o conteúdo de ca.crt e cole em um novo arquivo no diretório de carteira de nível de aplicativo usando um editor de texto. Salve o arquivo como ca.crt

Se houver certificado intermediário, exporte-o também usando a mesma técnica

Etapas detalhadas para importar certificado com capturas de tela
owm &

Em seguida, clique em carteira -> abrir

Clique em sim

Digite o caminho completo do diretório da carteira

Digite a senha da carteira

Now Operations:Importar certificado de usuário

Alternativamente, você pode adicionar o certificado usando o comando orapki também

carteira orapki adicionar \
-wallet . \
-trusted_cert \
-cert ca.crt \
-pwd

carteira orapki adicionar \
-wallet . \
-trusted_cert \
-cert int.crt \
-pwd
orapki wallet add \
-wallet .\
-user_cert \
-cert tech.crt \
-pwd

Etapa importante
Se você precisar importar o Certificado CA, também precisará adicionar o conteúdo do arquivo ca.crt ao arquivo b64InternetCertificate.txt localizado no diretório 10.1.2 ORACLE_HOME/sysman/config:

$ cat ca.crt>> <10.1.2 ORACLE_HOME>/sysman/config/b64InternetCertificate.txt

Se você também recebeu um Certificado Intermediário (intca.crt), também precisará adicioná-lo ao b64InternetCertificate.txt:
$ cat intca.crt>> <10.1.2 ORACLE_HOME>/sysman/config/b64InternetCertificate .TXT

Etapa 6

Modifique a carteira OPMN
  1. Navegue até o diretório $INST_TOP/certs/opmn.
  2. Crie um novo diretório chamado BAK.
  3. Mova os arquivos ewallet.p12 e cwallet.sso para o diretório BAK recém-criado.
  4. Copie os arquivos ewallet.p12 e cwallet.sso do diretório $INST_TOP/certs/Apache para o diretório $INST_TOP/certs/opmn.

Etapa 7

Atualizar o arquivo JDK Cacerts

O Oracle Web Services exige que o Certificado da Autoridade de Certificação que emitiu seu certificado de servidor (ca.crt da etapa anterior) esteja presente no arquivo JDK cacerts. Além disso, alguns recursos do XML Publisher e do BI Publisher requerem que o certificado do servidor (server.crt da etapa anterior) esteja presente.

Siga estas etapas para garantir que esses requisitos sejam atendidos:
  1. Navegue até o diretório $OA_JRE_TOP/lib/security.
  2. Faça backup do arquivo cacerts existente.
  3. Copie seus arquivos ca.crt e server.crt para este diretório e emita o seguinte comando para garantir que cacerts tenha permissões de gravação:
$ chmod u+w cacerts

Etapa 8

Atualizar o arquivo de contexto

Use o E-Business Suite – Editor de Contexto do Oracle Applications Manager (OAM) para alterar as variáveis ​​relacionadas ao SSL, conforme mostrado nesta tabela:
Variáveis ​​relacionadas a SSL no arquivo de contexto
Variável Valor não SSL Valor SSL
s_url_protocol http https
s_local_url_protocol http https
s_webentryurlprotocol http https
s_active_webport igual a s_webport igual a s_webssl_port
s_webssl_port não aplicável o padrão é 4443
s_https_listen_parameter não aplicável igual a s_webssl_port
s_login_page url construído com protocolo http e s_webport url construído com protocolo https e s_webssl_port
s_external_url url construído com protocolo http e s_webport url construído com protocolo https e s_webssl_port
 

Etapa 9 – Executar a configuração automática

A configuração automática pode ser executada usando o script adautocfg.sh no diretório de camada de aplicativo $ADMIN_SCRIPTS_HOME.

Artigos relacionados

Configuração automática

Etapas para executar a configuração automática no aplicativo R12, incluindo banco de dados e camada de aplicativo

localização dos modelos de configuração automática de aplicativos Oracle e como personalizar o modelo para arquivos de configuração automática

Etapa 10 – Reinicie os serviços do nível de aplicativo

Use o script adapcctl.sh no diretório $ADMIN_SCRIPTS_HOME para parar e reiniciar os serviços do Application Tier Apache.

Etapas a serem usadas ao usar o terminador SSL com aplicativos Oracle R12


Não há necessidade de criação e instalação do certificado no servidor web. O certificado será instalado no terminador SSL. Nesse caso, só precisamos definir o parâmetro do arquivo de contexto fornecido abaixo
Mudanças ao usar um Acelerador SSL
Variável Valor não SSL Valor SSL
s_url_protocol http http
s_local_url_protocol http http
s_webentryurlprotocol http https
s_active_webport igual a s_webport valor da porta de interface externa do Acelerador SSL
s_webentryhost igual a s_webhost Nome do host do Acelerador SSL
s_webentrydomain igual a s_domainname Nome de domínio do Acelerador SSL
s_enable_sslterminator # remova o '#' para usar ssl_terminator.conf em ambientes terminados em ssl
s_login_page url construído com protocolo http e s_webport url construído com protocolo https, s_webentryhost, s_webentrydomain, s_active_webport
s_external_url url construído com protocolo http e s_webport url construído com protocolo https, s_webentryhost, s_webentrydomain, s_active_webport

Executar configuração automática

A configuração automática pode ser executada usando o script adautocfg.sh no diretório de camada de aplicativo $ADMIN_SCRIPTS_HOME.

Reinicie os serviços do nível de aplicativo

Use o script adapcctl.sh no diretório $ADMIN_SCRIPTS_HOME para parar e reiniciar os serviços do Application Tier Apache.

Etapas para criptografia de ponta a ponta com configuração de passagem no balanceador de carga


1) Todas as etapas fornecidas para um único servidor web precisam ser executadas.

2) O certificado precisa ser criado com o nome do balanceador de carga

3)   Podemos executar as etapas do certificado em um nó e depois copiar todas as etapas para os outros nós

Mudanças de valor de contexto
Variáveis ​​relacionadas a SSL no arquivo de contexto
Variável Valor não SSL Valor SSL
s_url_protocol http https
s_local_url_protocol http https
s_webentryurlprotocol http https
s_active_webport igual a s_webport igual a s_webssl_port
s_webssl_port não aplicável o padrão é 4443
s_https_listen_parameter não aplicável igual a s_webssl_port
s_login_page url construído com protocolo http e s_webport url construído com protocolo https e s_webssl_port
s_external_url url construído com protocolo http e s_webport url construído com protocolo https e s_webssl_port

Executar configuração automática

A configuração automática pode ser executada usando o script adautocfg.sh no diretório de camada de aplicativo $ADMIN_SCRIPTS_HOME.

Reinicie os serviços do nível de aplicativo

Use o script adapcctl.sh no diretório $ADMIN_SCRIPTS_HOME para parar e reiniciar os serviços do Application Tier Apache.

Configuração do banco de dados  necessária


Produtos Oracle, como Oracle Configurator, Order Management, iStore, Order Capture, Quoting, iPayment, iStore e Pricing acessam dados pela Internet no modo de conexão HTTP ou HTTPS. A implementação do SSL para o Oracle Database Server (que atua como cliente enviando requisições ao servidor Web) faz uso do Oracle Wallet Manager para configurar uma carteira Oracle.

Nota:Este é um requisito obrigatório para as páginas de vitrine do Oracle iStore quando o Web Tier também estiver habilitado para SSL.

Para habilitar a solicitação do cliente HTTPS do banco de dados via UTL_HTTP, você precisa estabelecer um armazenamento confiável no formato de carteira. Você não precisa de um certificado de servidor para esta carteira. Você só precisa importar o certificado de CA raiz para as CAs raiz que são a âncora de confiança para os sites aos quais você precisa de UTL_HTTP para se conectar.
1)Depois de configurar seu ambiente para a camada de banco de dados, navegue até o diretório $ORACLE_HOME/appsutil.
2)Crie um novo diretório de carteira chamado:wallet
3)Navegue até o diretório de wallet recém-criado.
/>4) Abra o Wallet Manager como um processo em segundo plano:
owm &
5)No menu Oracle Wallet Manager, navegue até Wallet -> New.
Responda NÃO para:Seu diretório de carteira padrão não existe. Deseja criá-la agora?
A tela da nova carteira agora solicitará que você insira uma senha para sua carteira.
Clique em NÃO quando solicitado:
Uma nova carteira vazia foi criada. Deseja criar uma solicitação de certificado neste momento?6) Se precisar importar ca.crt:
No menu do Oracle Wallet Manager, navegue até Operações -> Importar certificado confiável.
Clique em OK.
Clique duas vezes em ca.crt para importá-lo.7) Salve a carteira:
No menu Oracle Wallet Manager, clique em Wallet.
Verifique se a caixa Auto Login está marcada.
Clique em Salvar .
Para testar se a carteira está configurada corretamente e acessível, faça login no SQLPLUS como usuário do aplicativo e execute o seguinte:SQL>select utl_http.request('[address to access]', '[proxy address]' , 'file:[full path to wallet directory]', null) de dual;


Onde:

‘[endereço para acesso]’ =o URL do seu Portal de Instalação Rápida do E-Business Suite.

‘[endereço proxy]’ =a url do seu servidor proxy, ou NULL se não estiver usando um servidor proxy.

‘file:[full path to wallet directory]’ =o local do diretório da sua carteira (não especifique os arquivos reais da carteira).

O parâmetro final é a senha da carteira, que é definida como nula por padrão.

Links relacionados

Habilitando SSL ou TLS no Oracle E-Business Suite Release 12 (Doc ID 2143099.1)
Como encontrar componentes R12 Versão
40 Adpatch pergunta que todo DBA deve saber
comando awk
Comando Keytool