사용자 지정 도메인과 상호 TLS가 활성화된 상태에서 Amazon API Gateway의 인증서 체인 및 자체 서명된 인증서 문제를 해결하려면 어떻게 해야 하나요?

3분 분량
0

사용자 지정 도메인 이름이 있는 Amazon API Gateway에서 상호 전송 계층 보안(TLS) 인증을 사용하고 있습니다. 인증서 체인 또는 자체 서명된 인증서 오류가 발생합니다. 이 문제를 해결하려면 어떻게 해야 하나요?

간략한 설명

시작하기 전에 다음 사항을 충족하는지 확인하세요.

해결 방법

Amazon API Gateway API를 호출할 때 발생하는 특정 오류 메시지 목록을 보려면 다음과 비슷한 curl 명령을 실행하세요.

$ curl -v https://mtls.example.info/test-apigw-mtls --key self-signed.key --cert self-signed.pem:"example"

클라이언트 오류

"curl: (58) could not load PEM client certificate, OpenSSL error error:02001002:system library:fopen:No such file or directory, (no key found, wrong pass phrase, or wrong file format?"

이 오류는 PEM 파일의 이름, 위치 또는 파일 형식이 잘못되었음을 의미합니다. 예를 들어 로컬에 저장된 인증서 파일 형식은 .crt이지만 API 요청에서는 .pem 파일이 대신 사용되었습니다. 이 문제를 해결하려면 로컬 클라이언트 인증서의 형식과 이름이 올바른지 확인하세요.

"curl: (6) Could not resolve host: mtls.example.info"

클라이언트가 도메인 이름을 확인할 수 없었습니다. 도메인 이름과 구성이 올바른지 확인하세요.

"url: (58) schannel: Failed to import cert file self-signed.pem, last error is 0x80092002"

이 오류는 로컬 클라이언트 .pem 파일에 문제가 있음을 의미합니다. .pem 파일에 올바른 이름과 형식이 포함되어 있는지 확인하세요.

"curl: (58) unable to set private key file: 'self-signed.key' type PEM"

이 오류는 로컬 클라이언트 파일에 문제가 있음을 의미합니다. HTTP 요청에 제공된 프라이빗 키가 누락되지 않고 올바른지 확인하세요.

서버 오류

"Access denied.(액세스가 거부되었습니다.) Reason: self-signed certificate.(원인: 자체 서명 인증서.)"

API 요청의 자체 서명된 클라이언트 인증서가 변경되거나 손상되지 않았는지 확인합니다.

다음 항목이 정확히 일치해야 합니다.

  • Amazon S3의 신뢰 저장소(bundle.crt 또는 bundle.pem)에서 자체 서명된 인증서를 서명하는 데 사용되는 프라이빗 키(private.key)의 계수입니다.
  • API 요청(client.crt)에서 전달된 클라이언트 인증서의 계수입니다.

두 계수를 비교하려면 다음 OpenSSL 명령을 실행합니다.

$ openssl rsa -noout -modulus -in private.key
$ openssl x509 -noout -modulus -in bundle.crt
$ openssl x509 -noout -modulus -in client.crt

참고: 보다 쉽게 비교할 수 있도록 더 짧은 해시 값을 생성하려면 PIPE를 사용하여 출력 계수를 암호화 해시 함수로 보낼 수 있습니다. 예시: openssl sha1 .

$ openssl [operation] -noout -modulus -in [data] | openssl sha1

유효한 명령 출력 예시:

2143831a73a8bb28467860df18550c696c03fbcb
2143831a73a8bb28467860df18550c696c03fbcb
2143831a73a8bb28467860df18550c696c03fbcb

데이터 무결성을 확인하려면 다음 diff 명령을 실행하여 콘텐츠 수준에서 데이터가 수정되지 않았는지 확인합니다.

$ diff client.crt bundle.crt

관련 정보

Amazon API Gateway를 위한 상호 TLS 인증 소개

상호 TLS가 필요한 API Gateway 사용자 지정 도메인 이름에서 HTTP 403 Forbidden 오류를 해결하려면 어떻게 해야 하나요?

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠