백엔드 시스템에 설치되고 Amazon API Gateway에서 생성한 자체 서명 및 만료된 SSL 인증서와 관련된 문제를 해결하려고 합니다.
해결 방법
HTTP 프록시 통합 테스트
API Gateway 콘솔을 사용하여 잘못된 SSL 인증서를 테스트합니다. 잘못된 SSL 인증서 목록은 잘못된 SSL 웹 사이트의 badssl.com을 참조하십시오.
다음 단계를 완료하십시오.
- 이름이 /selfsigned인 리소스를 생성합니다.
- 리소스에 GET 메서드를 생성합니다.
- URL을 사용하여 HTTP 프록시 통합을 구성합니다.
- API Gateway 콘솔을 엽니다.
- API를 테스트합니다.
- 이름이 /expiredcert인 리소스와 이름이 /untrustedRootCA인 다른 리소스를 사용하여 위의 각 단계를 반복합니다.
이름이 /selfsigned인 리소스의 경우 다음과 같은 오류 메시지가 표시됩니다.
"Thu Dec 15 16:05:05 UTC 2022 : Sending request to https://self-signed.badssl.com/
Thu Dec 15 16:05:05 UTC 2022 : Execution failed due to configuration error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
이름이 /expiredcert인 리소스의 경우 다음과 같은 오류 메시지가 표시됩니다.
"Thu Dec 15 16:06:02 UTC 2022 : Sending request to https://expired.badssl.com/
Thu Dec 15 16:06:02 UTC 2022 : Execution failed due to configuration error: PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed"
이름이 /untrustedRootCA인 리소스의 경우 다음과 같은 오류 메시지가 표시됩니다.
"Thu Dec 15 16:06:28 UTC 2022 : Sending request to https://untrusted-root.badssl.com/
Thu Dec 15 16:06:28 UTC 2022 : Execution failed due to configuration error: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
구성 오류 해결
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
Network Load Balancer에 TLS 리스너가 있는 경우 Network Load Balancer는 TLS 종료를 수행하고 대상에 대한 또 다른 연결을 생성합니다. Network Load Balancer에 연결된 인증서는 모든 요구 사항을 충족해야 합니다.
Network Load Balancer는 대상과의 SSL 핸드셰이크 중에 인증서 검증을 수행하지 않습니다. Network Load Balancer는 대상 인스턴스에 설치된 만료되거나 자체 서명된 인증서를 허용합니다. Network Load Balancer와 대상 그룹은 가상 프라이빗 클라우드(VPC) 내에 연결되어 있습니다. Network Load Balancer가 TCP 리스너를 사용하는 경우 TLS 핸드셰이크는 엔드 투 엔드 방식으로 수행됩니다. 이 경우 백엔드 애플리케이션은 SSL 요구 사항을 충족해야 합니다.
API Gateway는 VPC 링크 통합을 통한 SSL 핸드셰이크 중에 서버 이름 표시(SNI)를 지원합니다.
백엔드 Network Load Balancer에 인증 기관(CA)이 발급하지 않은 자체 서명된 인증서 또는 프라이빗 인증서가 있는 경우 다음과 같은 오류 메시지가 표시됩니다.
"Execution failed due to configuration error: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
이 문제를 해결하려면 다음 update-integration AWS CLI 명령을 실행하고 통합의 tlsConfig 객체에서 insecureSkipVerification을 true로 설정하십시오.
aws apigateway update-integration --rest-api-id EXAMPLE-REST-API-ID --resource-id EXAMPLE-RESOURCE-ID --http-method GET --patch-operations "op='replace',path='/tlsConfig/insecureSkipVerification',value=true"
참고: EXAMPLE-REST-API-ID 및 EXAMPLE-RESOURCE-ID를 원하는 값으로 바꾸십시오.
관련 정보
API Gateway에서 백엔드 인증을 위한 SSL 인증서 생성 및 구성