PI_PO

REST 호출 시 Handshake Failure 오류 해결 방법

피오농부 2025. 3. 15. 07:09
반응형

🔍 오류 현상

Receiver Adapter에서 HTTPS 주소 호출 시 발생하는 오류:

iaik.security.ssl.SSLException: Peer sent alert: Alert Fatal: handshake failure

오류 원인:

  • 서버 인증서가 클라이언트에 설치되지 않음
  • HTTPS 호출 시 동일한 에러 발생 (https://<ip>:443)

🚀 Handshake Failure 오류 원인

1️⃣ 인증서 문제

  • 서버의 SSL 인증서가 신뢰할 수 없는 경우 발생
  • 해결 방법: 루트 및 중간 인증서를 SAP PO의 신뢰할 수 있는 CA 저장소에 추가통신 채널 재시작

2️⃣ SSL/TLS 프로토콜 및 암호화 스위트 불일치

  • 서버와 클라이언트 간 지원하는 SSL/TLS 버전 불일치
  • 해결 방법:
    • SAP PO가 TLS 1.2 이상을 지원하는지 확인
    • SAP Note 2284059를 참고하여 SSL 라이브러리 업데이트
    • SSLContext.properties 수정하여 적절한 암호화 스위트 활성화

3️⃣ 클라이언트 인증서 누락

  • 서버가 클라이언트 인증서 요구, 그러나 SAP PO에 해당 인증서 없음
  • 해결 방법:
    • SAP PO 키 저장소에 클라이언트 인증서 추가

 

🔍 문제 해결 방법

  1. XPI Inspector 활용하여 SSL 핸드셰이크 과정 분석
  2. SAP PO의 최신 패치 및 노트 적용 여부 확인
  3. SAP Note 28214772616423 참고하여 해결 방안 검토

🔄 HTTP → HTTPS 호출 시 발생하는 문제

오류 메시지:

HttpCallException: HTTP PORT call to http... not successful. Not Found

원인: HTTPS 서버를 HTTP 프로토콜로 호출함

  • 포트 80은 HTTP, 포트 443은 HTTPS
  • 해결 방법: 올바른 포트(443) 사용

⚠️ Invalid SSL Message 오류 해결

오류 메시지:

SSLException: Invalid SSL message, peer seems to be talking plain

원인:

  • 클라이언트는 HTTPS로 요청, 서버는 HTTP 응답 → SSL 핸드셰이크 실패
  • 주로 잘못된 포트 설정으로 인해 발생
  • 해결 방법: 올바른 포트(443) 확인 후 요청

 

🔍 XPI Inspector 확인 방법

  1. XPI Inspector 접속:
  2. http://<po host>:<port>/xpi_inspector/index.jsp
  3. Example 11 (Authentication, SSL & PP) 선택
  4. 테스트 결과:
    • https://<ip>:80Invalid SSL message 오류 발생
    • https://<ip>:443handshake failure 확인

⚠️ 주의 사항

  • Audit 로그 증가로 인해 성능 저하 가능
  • Error 항목 분석 시 로그 과부하 발생 가능

🔑 SSL/TLS Handshake란?

SSL/TLS 핸드셰이크란?

  • 클라이언트와 서버 간 안전한 통신을 수립하는 과정
  • 프로토콜 버전 협상, 인증서 교환 및 암호화 설정 진행

🚨 핸드셰이크 실패 원인

  • 프로토콜 불일치: 서버와 클라이언트의 SSL/TLS 버전 차이
  • 암호화 스위트 불일치: 호환되지 않는 암호화 알고리즘 사용
  • 잘못된 인증서: 인증서 만료, 호스트 이름 불일치 등
  • 클라이언트 인증서 누락

✅ 해결 방법

  1. SAP PO의 SSL/TLS 버전 및 암호화 스위트 확인
  2. 인증서 체인 및 유효성 검토
  3. 서버와 클라이언트 간 SSL 설정 조정

 

🔍 SOAP UI를 이용한 테스트

  • https://<ip>:443 or https://<ip>:80Connection timed out: connect 오류 발생
  • 원인: 방화벽 미설정으로 인한 연결 차단 가능성
  • 해결 방법: 방화벽 오픈 여부 확인 후 재시도

🛠 SOAP UI에서 인증서 설정 방법

  1. REST Project 더블 클릭
  2. WS-Security Configurations → Keystores에서 인증서 등록
  3. SSL Keystore 항목에서 인증서 선택 후 HTTPS 호출 테스트

📌 결론 및 최종 해결 방법 정리

  1. XPI Inspector에서 SSL 설정 확인
  2. SAP PO의 SSL/TLS 버전 및 암호화 스위트 조정
  3. 신뢰할 수 있는 CA 인증서 추가 후 통신 채널 재시작
  4. 올바른 포트(443) 및 URL 사용 여부 확인
  5. SAP Note 2616423, 2284059 검토 및 패치 적용 여부 확인
  6. SOAP UI에서 SSL 인증서 등록 후 테스트

📌 추가 참고:

  • https://www.ssllabs.com/ssltest에서 TLS 프로토콜 및 Cipher Suites 확인 가능
  • 단, 사내 IP를 외부 사이트에서 테스트하는 것은 보안상 주의 필요
반응형