SSL(HTTPS)를 사용하도록 HTTPRequest 노드 구성

이 작업 주제에서는 SSL을 통해 HTTP를 사용하여 다른 응용프로그램와 통신하도록 HTTPRequest 노드를 구성하는 방법을 설명합니다. 이 작업에서는 windows 시스템의 경우에 필요한 단계를 설명하지만 다른 플랫폼의 경우에도 거의 동일한 작업이 필요합니다. HTTPRequest 작업을 완료하려면 HTTPS 서버 응용프로그램이 필요합니다. 단순성을 위해 여기 제공된 세부사항은 SSL용 HTTPInput 노드를 서버 응용프로그램으로 사용할 때에만 적용됩니다. 그러나 다른 서버 응용프로그램을 사용할 때도 동일한 세부사항이 적용됩니다.

cacerts 파일에 인증서 추가

호출될 서버 응용프로그램용 인증서를 WebSphere Message Broker용 cacerts 파일에 추가해야 합니다. 이 파일은 JRE 보안 디렉토리에 있습니다. Windows에서 cacerts 파일을 찾으려면 다음 단계를 완료하십시오.
  1. 시작 > IBM WebSphere Message Brokers 6.0 > 명령 콘솔을 선택하여 브로커 명령 콘솔을 여십시오.
  2. 명령 콘솔에서 다음 명령을 입력하여 디렉토리를 cacerts 파일이 있는 위치로 변경하십시오.
    cd "%MQSI_FILEPATH%\jre\lib\security"

cacerts 파일을 수정하려면 keytool 명령을 사용해야 합니다.

cacerts 파일로 인증서 들여오기
  1. 시작 > IBM WebSphere Message Brokers 6.0 > 명령 콘솔을 선택하여 브로커 명령 콘솔을 여십시오.
  2. 명령 콘솔에서 다음 명령을 입력하십시오.
    "%MQSI_FILEPATH%\jre\bin\keytool" -import -alias mykey -file name of certificate file -keystore cacerts -keypass changeit
    name of certificate file
    인증서 파일의 완전한 이름. 이 파일은 대개 메시지 브로커 사용자 홈 디렉토리에 있습니다.
    changeit
    cacerts 파일의 디폴트 암호. 가능한 빨리 이 암호를 변경해야 합니다. keytool을 사용하여 암호를 변경할 수 있습니다.
다른 keystore에서 인증서 추출
  1. 시작 > IBM WebSphere Message Brokers 6.0 > 명령 콘솔을 선택하여 브로커 명령 콘솔을 여십시오.
  2. 명령 콘솔에서 다음 명령을 입력하십시오.
    "%MQSI_FILEPATH%\jre\bin\keytool" -export -alias tomcat -file name of certificate file -keystore keystore file -keypass changeit
    name of certificate file
    인증서 파일의 완전한 이름. 이 파일은 일반적으로 .keystore로 불리며 대개 메시지 브로커 사용자 홈 디렉토리에 있습니다.
    keystore 파일
    키스토어 파일의 완전한 이름. 이 파일은 대개 메시지 브로커 사용자 홈 디렉토리에 있습니다.
    changeit
    cacerts 파일의 디폴트 암호. 가능한 빨리 이 암호를 변경해야 합니다. keytool을 사용하여 암호를 변경할 수 있습니다.
올바른 인증서를 cacerts로 들여왔는지 확인하는 것이 중요합니다. 올바른 인증서는 HTTP 서버가 사용해야 하는 인증서입니다.

메시지 플로우를 작성하여 HTTPS 요청 작성

다음 메시지 플로우는 WebSphere MQ 메시지를 HTTPRequest로 변환하기 위한 일반 메시지 플로우를 작성합니다.

  1. MQInput->HTTPRequest->Compute->MQOutput 노드를 사용하여 메시지 플로우를 작성하십시오.
  2. MQInput 노드의 경우, 큐 이름을 HTTPS.IN1로 설정하고 MQSeries 큐를 작성하십시오.
  3. MQOutput 노드의 경우, 큐 이름을 HTTPS.OUT1로 설정하고 MQSeries 큐를 작성하십시오.
  4. HTTPRequest 노드의 경우, 호출할 HTTP 서버를 가리키도로고 웹 서비스 URL을 설정하십시오. HTTPInput 작업을 호출할 경우, https://localhost:7083/testHTTPS를 사용하십시오.
  5. HTTPRequest 노드의 경우, OutputRoot.BLOB을 Response location in tree로 사용하도록 고급 등록 정보를 설정하십시오.
  6. Compute 노드에서 다음 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;

이제 메시지 플로우를 브로커에 전개하고 테스트할 준비가 되었습니다.

예제 테스트

예제가 작동하는지 테스트하려면 다음 단계를 완료하십시오.

  1. 예제 테스트를 포함하여 SSL(HTTPS)를 사용하도록 HTTPInput 및 HTTPReply 노드 구성에 제공된 지시사항을 모두 따르십시오.
  2. HTTPRequest 메시지 플로우를 전개하십시오.
  3. MQSeries 큐 HTTPS.IN1큐에 메시지를 넣으십시오. 메시지가 출력 큐에 나타나야 합니다. 실패할 경우, 로컬 오류 로그(windows에서는 이벤트 로그)에 오류가 표시됩니다.
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ap12235_