Configurando um Nó HTTPRequest para Utilizar SSL (HTTPS)

Início da mudançaConfigure o nó HTTPRequest para comunicar-se com outros aplicativos que utilizam HTTP sobre SSL, incluindo certificados no arquivo cacerts e criando um fluxo de mensagens para fazer pedidos de HTTP. Fim da mudança

Início da mudança

Este tópico descreve as etapas que precisam ser seguidas ao configurar um nó HTTPRequest em um sistema Windows. As etapas que precisam ser seguidas em outros sistemas operacionais são quase idênticas.

Para ativar um nó HTTPRequest para se comunicar utilizando HTTP sobre SSL, um aplicativo de servidor HTTPS é necessário. As informações fornecidas neste tópico mostram como utilizar o Nó HTTPInput para SSL como o aplicativo do servidor, mas os mesmos detalhes também se aplicam quando você está utilizando qualquer outro aplicativo do servidor.

Fim da mudança

Incluindo Certificados no Arquivo cacerts

É necessário incluir os certificados para que o aplicativo do servidor seja chamado (e confiável) no arquivo cacerts para o WebSphere Message Broker. Este arquivo é o trust store padrão para o intermediário e está localizado no diretório de segurança JRE do intermediário. Para localizar o arquivo cacerts no Windows:
  1. Clique em Iniciar > IBM WebSphere Message Brokers 6.0 > Console de Comandos para abrir o console de comandos do intermediário.
  2. Início da mudançaNo console de comandos, digite o seguinte comando para mudar para o diretório no qual o arquivo cacerts está armazenado, por exemplo:
    cd "%MQSI_FILEPATH%\jre\lib\security"
    ou
    cd "%MQSI_FILEPATH%\jre15\lib\security"
    Fim da mudança
Início da mudançaEm sistemas UNIX, o arquivo cacerts está armazenado no seguinte diretório:
/opt/IBM/mqsi/6.1/jre15/ppc64/lib/security
ou
$MQSI_FILEPATH/jre15/ppc64/lib/security
Fim da mudança

Importando um Certificado para o Arquivo cacerts

Utilize o comando keytool para modificar o arquivo cacerts:

  1. Clique em Iniciar > IBM WebSphere Message Brokers 6.0 > Console de Comandos para abrir o console de comandos do intermediário.
  2. Início da mudançaNo console de comandos, digite o seguinte comando:
    "%MQSI_FILEPATH%\jre\bin\keytool" -import -alias mykey
    -file nome do arquivo de certificado -keystore cacerts
    -storepass changeit
    em que:
    nome do arquivo de certificado
    é o nome completo do arquivo de certificado. Este arquivo geralmente está localizado no diretório home de usuário do intermediário de mensagem.
    changeit
    é a senha padrão para o arquivo cacerts. É possível utilizar o comando keytool para alterar a senha, mas, como ele não é uma propriedade configurável do intermediário, o intermediário sempre tenta acessar o arquivo cacerts utilizando a senha padrão changeit.

    Se você precisar alterar a senha do cacerts, ou se precisar utilizar um trust store diferente, será possível transmitir as informações para a Java Virtual Machine (JVM) do intermediário configurando a seguinte variável de ambiente:

    No Windows, AIX e Linux:

    IBM_JAVA_OPTIONS=
    -Djavax.net.ssl.trustStore=<trustStore_path>/<trustStore_filename>
    -Djavax.net.ssl.trustStorePassword=<trustStore_password>

    No Solaris e no HP-UX:

    _JAVA_OPTIONS=
    -Djavax.net.ssl.trustStore=<trustStore_path>/<trustStore_filename>
    -Djavax.net.ssl.trustStorePassword=<trustStore_password>

    Tenha cuidado ao utilizar esta variável de ambiente, porque se a configuração não for válida, os grupos de execução do intermediário talvez não possam criar sua JVM e, portanto, não poderão ser iniciados com êxito. Não utilize a variável de ambiente IBM_JAVA_OPTIONS (ou _JAVA_OPTIONS) se também estiver utilizando a autenticação SSL com nós Real-time, ou com o WebSphere MQ Java Client.

    Fim da mudança
Extraindo um Certificado de Outro Armazenamento de Chaves
  1. Clique em Iniciar > IBM WebSphere Message Brokers 6.0 > Console de Comandos para abrir o console de comandos do intermediário.
  2. Início da mudançaNo console de comandos, digite o seguinte comando:
    "%MQSI_FILEPATH%\jre\bin\keytool" -export -alias mykey
    -file nome do arquivo de certificado -keystore arquivo de armazenamento de chaves
    -storepass password
    em que
    nome do arquivo de certificado
    é o nome completo do arquivo de certificado. Este arquivo geralmente tem a extensão .keystore e está localizado no diretório inicial do usuário do intermediário.
    arquivo de armazenamento de chaves
    é o nome completo do arquivo de armazenamento de chaves. Este arquivo geralmente está localizado no diretório inicial do usuário do intermediário.
    mykey
    é o nome do alias para a entrada de armazenamento de chaves (certificado).
    changeit
    é a senha para o arquivo de armazenamento de chaves.
    Fim da mudança
É necessário importar o certificado correto (que o servidor HTTP utiliza para apresentar suas credenciais de autenticação) para o arquivo cacerts.

Criando um Fluxo de Mensagens para Fazer Pedidos HTTPS

O fluxo de mensagens a seguir cria um fluxo de mensagens genérico para converter uma mensagem do WebSphere MQ em um HTTPRequest:

  1. Crie um fluxo de mensagens com os nós MQInput->HTTPRequest->Compute->MQOutput.
  2. No nó MQInput, configure o nome da fila como HTTPS.IN1 e crie a fila do WebSphere MQ.
  3. No nó MQOutput, configure o nome da fila como HTTPS.OUT1 e crie a fila do WebSphere MQ.
  4. No nó HTTPRequest, configure a URL de Serviço da Web para apontar para o servidor HTTP a ser chamado. Para chamar o nó HTTPInput, utilize https://localhost:7083/testHTTPS.
  5. Na guia Propriedades Avançadas do nó HTTPRequest, configure a propriedade Local da mensagem de resposta na árvore como OutputRoot.BLOB.
  6. No nó Compute, inclua o seguinte código ESQL:
    CREATE COMPUTE MODULE test_https_Compute
        CREATE FUNCTION Main() RETURNS BOOLEAN
        BEGIN
            -- CALL CopyMessageHeaders();
            CALL CopyEntireMessage();
            set OutputRoot.HTTPResponseHeader = null;
            RETURN TRUE;
        END;
    
        CREATE PROCEDURE CopyMessageHeaders() BEGIN
            DECLARE I INTEGER;
            DECLARE J INTEGER;
            SET I = 1;
            SET J = CARDINALITY(InputRoot.*[]);
            WHILE I < J DO
                SET OutputRoot.*[I] = InputRoot.*[I];
                SET I = I + 1;
            END WHILE;
        END;
    
        CREATE PROCEDURE CopyEntireMessage() BEGIN
            SET OutputRoot = InputRoot;
        END;
    END MODULE;

O fluxo de mensagens agora está pronto para ser implementado e testado no intermediário.

Testando seu Exemplo

Para testar se o exemplo funciona, conclua as seguintes etapas:

  1. Siga as instruções em Configurando os Nós HTTPInput e HTTPReply para Utilizar SSL (HTTPS), incluindo o teste do exemplo.
  2. Implemente o fluxo de mensagens do HTTPRequest.
  3. Coloque uma mensagem na fila do WebSphere MQ, HTTPS.IN1. Em caso de êxito, aparecerá uma mensagem na fila de saída. Se o processo falhar, aparecerá um erro no log de erros local (que é o log de eventos no Windows).
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:12:59

ap12235_