2023년 6월 25일 일요일

SAP PO의 Receiver 어댑터에서의 HTTP호출시 302코드 에러 확인과정 정리

Receiver어댑터에서 타겟 서버를 호출시 SSL관련 에러가 발생되는건 보통 호출하는 주소와 실제 타겟쪽 서버구성이 상이해서 발생되는 현상이라고 알고 있는데 리턴되는 코드가 302이고 인증서 관련 에러도 보여 좀더 자세하게 확인해보는 과정을 담아보았습니다.

메시지모니터링 Audit로그

Calling server POST: http://..
Server returned code: 302
MP: exception caught with cause java.io.IOException:
iaik.security.ssl.SSLCertificateException: Peer certificate rejected by ChainVerifier

번역된 내용을 보면 '체인 검증기에 의해 거부된 피어인증서' ???

일단 구글 바드한테 물어보았습니다.

"http호출시 iaik.security.ssl.SSLCertificateException: Peer certificate rejected by ChainVerifier와 302이 코드는 왜 발생되는거야?"
  • 서버의 인증서가 신뢰할 수 없다는 것을 의미
  • 302는 리다이렉션 코드
    • 서버가 클라이언트에게 요청한 리소스를 찾을 수 없을 때 클라이언트에게 다른 URL로 리다이렉트하도록 지시하는 코드
  • 302이 코드가 발생하는 이유와 해결
    • 서버의 인증서가 만료되었거나 손상되었는지 확인
    • 서버의 인증서가 신뢰할 수 있는 CA에 의해 발급되었는지 확인
    • 클라이언트의 설정으로 인해 서버의 인증서를 신뢰할 수 없도록 설정되어 있지 않은지 확인
위와 같은 내용을 확인했는데 이전 경험으로는 HTTPS,SSL 사트나 시스템을 접속할때 서버쪽 신뢰할수 있는 인증서를 호출하는 클라이언트에 설치후 정상적으로 호출,접속 되는 경우는 있었습니다.

이 노츠를 보면 에러메시지의 원인과 해결방법에 내용을 볼수 있는데 신뢰하는 인증서를 SAP Netweaver Administrator에 업로드 하는 방법도 있습니다.

2517988 - Failed to get the input stream from socket: iaik.ecurity.ssl.SSLCertificateException: Peer certificate rejected by Chain Verifier
PO에 임포트된 인증서에 오류가 있는경우에도 이런 에러가 발생되는것 같은데 XPI Inpector를 사용한 오류에 대한 추적도 가능한것으로 보입니다.

1829329 - Peer certificate rejected by ChaninVerifier after Updating the Server Certificate for PI SOAP Receiver Adapter Messages
위 노츠에서 해결방안으로 나왔던 내용이 이 노츠에서도 나오는데 새로운 인증서가 정상적으로 임포트 되었다고해도 해당 채널에서 예를들어 만료된인증서가 캐시안에 남아있을경우 이런에러도 발생될수도 있는것 같습니다.

그럼 HTTP 302코드는 왜 발생되는걸까?

302는 에러가 아니고 Redirect라고 하는데 '버그나 예외도아니고 서버쪽의 셋팅이나 다른 어떤문제' 라고 어느내용을 보게 되었고 문득 떠오르는게.. SAP PO의 ICM안에 HTTP,HTTPS에대한 요청에 대한 설정 부분에서 클라이언트의 잘못된 도메인의 요청이나 서버의 잘못된 설정으로 발생된게 아닐까 추측해봅니다.
예를 들어, 웹 서버가 다운 중일 때 웹 서버는 HTTP 302 리턴 코드를 사용하여 클라이언트에게 웹 사이트의 임시 주소를 제공할 수 있습니다.

정리하자면

서버쪽에서 전달받은 주소를 정상적으로 셋팅을 하고 호출해서 에러나 302같은 HTTP 코드를 리턴받았다면 먼저 URL를 전달해준 시스템 담당자한테 먼저 확인이 필요부분으로 생각 되며 그전에 HTTP상태코드에 대해 이해하는것도 좋을것 같습니다.
1xx(정보): 요청을 받았으며 프로세스를 계속한다
2xx(성공): 요청을 성공적으로 받았으며 인식했고 수용
3xx(리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요
4xx(클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할수 없음

이전에 작성한 관련 내용입니다.

What is the cause of HTTP 400 Bad Request? 


댓글 없음:

댓글 쓰기