Apigee Edge 문서입니다.
Go to the
Apigee X 문서로 이동합니다. info
증상
클라이언트 애플리케이션은 Edge Microgateway의 API 호출에 대한 응답으로 메시지
Bad Gateway와 함께 HTTP 응답 코드 502를 수신합니다.
또는 관리자가 self signed certificate in certificate
chain 오류가 발생합니다.
edgemicro configure
오류 메시지
클라이언트에 다음 응답 메시지가 표시됩니다.
HTTP/1.1 502 Bad Gateway
오류 응답의 두 가지 일반적인 예는 다음과 같습니다.
{"message":"self signed certificate in certificate chain","code":"SELF_SIGNED_CERT_IN_CHAIN"}{"message":"self signed certificate","code":"DEPTH_ZERO_SELF_SIGNED_CERT"}
또는 edgemicro configure를 실행할 때 이 오류가 발생할 수 있습니다.
{ Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (_tls_wrap.js:1051:34)
at TLSSocket.emit (events.js:189:13)
at TLSSocket._finishInit (_tls_wrap.js:633:8) code: 'SELF_SIGNED_CERT_IN_CHAIN' }가능한 원인
| 원인 | 설명 | 다음에 관한 문제 해결 안내 |
|---|---|---|
| 대상 서버가 자체 서명 인증서를 제공합니다. | Edge Microgateway는 대상 서버의 인증서를 확인하고 신뢰할 수 없는 경우 런타임 오류를 발생시킵니다. | Edge Public 및 Private Cloud 사용자 |
| Apigee Edge Management Server가 자체 서명 인증서를 사용합니다. | Edge Microgateway를 처음 구성할 때 TLS를 통해 Apigee Edge에 연결하여 부트스트랩합니다. Edge가 자체 서명 인증서를 제공하면 실패합니다. | Edge Private Cloud 사용자 |
원인: 대상 서버가 자체 서명 인증서를 제공합니다.
대상 서버가 자체 서명 인증서를 남쪽 연결에서 제공하는 경우 Edge Microgateway는 자체 서명 인증서를 신뢰하지 않으므로 기본적으로 이 오류를 발생시킵니다.
진단
로그 (/var/tmp/edgemicro-`hostname`-
*.log)에 다음 오류가 표시될 수 있습니다.
2021-05-18T10:52:46.425Z [error][0:8000][1][gsc][test][edgemicro_badtargethost][][][2db53f80- b7c7-11eb-9abe-05b6297863f1][microgateway-core][][GET][502][self signed certificate in certificate chain][SELF_SIGNED_CERT_IN_CHAIN][]
오류 코드 SELF_SIGNED_CERT_IN_CHAIN은 Edge Microgateway가 대상 서버에서 자체 서명 인증서를 수신했을 가능성이 매우 높음을 나타냅니다. 이를 확인하려면 다음 단계를 따르세요:
- 다음
openssl명령어를 실행하여 대상 서버의 인증서 체인을 확인합니다.echo | openssl s_client -connect TARGET_SERVER_HOSTNAME:PORT -servername TARGET_SERVER_HOSTNAME | openssl x509 -noout
-
대상 서버의 인증서 체인이 실제로 자체 서명된 경우 이것이 문제의 원인입니다.
다음 예에서는 대상 서버가 자체 서명 인증서를 제공하는 것을 확인할 수 있습니다.
echo | openssl s_client -connect untrusted-root.badssl.com:443 -servername untrusted-root.badssl.com | openssl x509 -noout
depth=1 C = US, ST = California, L = San Francisco, O = BadSSL, CN = BadSSL Untrusted Root Certificate Authority verify error:num=19:self signed certificate in certificate chain verify return:0 DONE
해상도
- 대상 서버를 소유한 팀과 협력하여 신뢰할 수 있는 인증 기관 (CA)에서 서명한 적절한 TLS 인증서를 확보합니다.
그럴 수 없다면 다음 옵션 중 하나를 고려하여 Edge Microgateway에서 자체 서명 인증서를 허용하세요.
옵션 1: Edge Microgateway가 모든 인증서를 신뢰하도록 시스템 속성 설정
- Docker를 사용하는 경우 Node.js에서 신뢰할 수 없는 CA 사용을 참고하세요.
그렇지 않으면 루트 CA 파일을 가리키는
NODE_EXTRA_CA_CERTS, 라는 환경 변수를 내보냅니다.이는 공식 Node.js 웹사이트에 문서화되어 있습니다.
옵션 2: 대상 서버의 특정 인증서를 신뢰하도록 Edge Microgateway YAML 구성 파일 구성
- PEM 형식으로 대상 서버의 인증서 (또는 체인)가 있는지 확인합니다. 다른 인증서 형식을 PEM으로 변환하려면 지원되는 형식으로 인증서 변환의 안내를 따르세요.
인증서 체인이 있는 경우 인증서가 올바른 순서로 되어 있는지 확인합니다. 리프 인증서는 항상 먼저 와야 하고, 그 뒤에 중간 인증서, 루트 인증서가 와야 합니다. 자세한 내용은 인증서 체인 검증을 참고하세요.
다음 예에서는 신뢰할 수 있는 CA 파일을 구성했습니다.
untrusted-root.badssl.comedgemicro: ... targets: - host: 'untrusted-root.badssl.com' ssl: client ca: /opt/apigee/certs/untrusted-root.pem
이를 구성하는 안내는 Edge Microgateway 모듈 - 단방향 및 양방향 남쪽 TLS 구성 동영상에서도 다룹니다. 자세한 내용은 Edge Microgateway 서버에서 SSL 구성을 참고하세요.
문제가 계속되면 진단 정보를 수집해야 함으로 이동합니다.
원인: Apigee Edge Management Server가 자체 서명 인증서를 사용합니다.
Edge Microgateway를 처음 설정할 때 실행해야 하는 명령어 중 하나는
edgemicro configure 또는 edgemicro private configure입니다. 이 명령어는
클러스터를 부트스트랩하고 Apigee Edge에 연결하여 필요한 정보를 다운로드합니다.
Edge Private Cloud의 경우 Management Server URL은 -m 인수로 결정됩니다.
Management Server에 TLS를 사용 설정한 경우 Edge Microgateway는 Management Server에서 제공하는 인증서를 확인하려고 시도합니다.
Edge Private Cloud의 edgemicro configure 명령어 예는 다음과 같습니다.
edgemicro private configure -u <username> -p <password> -o apigee -e dev -v secure -r https://apigee-dev.net -m https://management.apigee-dev.net:8443
Management Server가 자체 서명 인증서로 구성된 경우 콘솔 출력에 다음 오류가 표시됩니다.
{ Error: self signed certificate in certificate chain
at TLSSocket.onConnectSecure (_tls_wrap.js:1051:34)
at TLSSocket.emit (events.js:189:13)
at TLSSocket._finishInit (_tls_wrap.js:633:8) code: 'SELF_SIGNED_CERT_IN_CHAIN' }진단
- 이 경우 Management Server
(
management.apigee-dev.net) 가 자체 서명 TLS 인증서를 반환할 수 있습니다. - Apigee Edge 시스템 관리자가 인증서를 제공하고 사본을 보유하고 있을 가능성이 높습니다.
- 그렇지 않으면 다음 명령어를 실행하여 인증서에 관한 정보를 가져옵니다.
echo | openssl s_client -connect management.apigee-dev.net:8443 -servername management.apigee-dev.net | openssl x509 -noout
- Management Server에 자체 서명 인증서가 있는 경우 이것이 문제의 원인입니다. 문제.
해상도
- 대상 서버를 소유한 팀과 협력하여 신뢰할 수 있는 인증 기관 (CA)에서 서명한 적절한 TLS 인증서를 확보합니다.
그럴 수 없다면 다음을 수행하여 Edge Microgateway에서 자체 서명 인증서를 허용하세요.
- Edge Microgateway가 모든 인증서를 신뢰하도록 시스템 속성을 설정합니다.
- Docker를 사용하는 경우 Node.js에서 신뢰할 수 없는 CA 사용을 참고하세요.
- 그렇지 않으면 루트 CA 파일을 가리키는
NODE_EXTRA_CA_CERTS라는 환경 변수를 내보냅니다.이는 공식 Node.js 웹사이트에 문서화되어 있습니다.
진단 정보 수집 필요
위 안내를 따른 후에도 문제가 지속되면 다음 진단 정보를 수집한 후 Apigee Edge 지원팀에 문의하세요.
- 로그 파일: 기본 폴더는
/var/tmp이지만 기본config.yaml파일 (logging > dir parameter)에서 재정의될 수 있습니다. 로그 파일을 Apigee Edge 지원팀에 제공하기 전에log > level을info으로 변경하는 것이 좋습니다. - 구성 파일: Edge Microgateway의 기본 구성은 기본 Edge Microgateway 폴더
$HOME/.edgemicro의 YAML 파일에 있습니다. 이라는 기본 구성 파일default.yaml과 각 환경 ORG-ENV-config.yaml에 대한 구성 파일이 있습니다. 영향을 받는 조직 및 환경의 이 파일 을 전체적으로 업로드합니다.참조 문서