<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
증상
클라이언트 애플리케이션이 다음 메시지와 함께 HTTP 응답 코드 502
를 수신합니다.
Edge Microgateway의 API 호출에 대한 응답으로 Bad Gateway
).
또는 다음을 실행할 때 관리자에게 self signed certificate in certificate
chain
오류가 표시됩니다.
<ph type="x-smartling-placeholder"></ph>
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' }
가능한 원인
원인 | 설명 | 다음에 관한 문제 해결 안내 |
---|---|---|
<ph type="x-smartling-placeholder"></ph> 대상 서버에서 자체 서명 인증서를 제시함 | Edge Microgateway가 대상 서버의 인증서를 확인하고 신뢰할 수 없는 경우 이를 확인합니다. 런타임 오류가 발생합니다. | 에지 퍼블릭 및 프라이빗 클라우드 사용자 |
Apigee Edge Management Server가 자체 서명 인증서를 사용함 | Edge Microgateway를 처음 구성할 때는 다음을 통해 Apigee Edge에 연결됩니다. 부트스트랩으로 전송되는 TLS Edge에서 자체 서명 인증서를 제공하는 경우 실패합니다. | Edge 프라이빗 클라우드 사용자 |
원인: 대상 서버가 자체 서명 인증서를 제시함
<ph type="x-smartling-placeholder">자체 서명 인증서는 대상 서버의 <ph type="x-smartling-placeholder"></ph> southbound 연결이 없으면 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
해상도
- 대상 서버를 소유한 팀과 협력하여 인증 기관에서 서명한 올바른 TLS 인증서를 조달합니다. 신뢰할 수 있는 인증 기관 (CA)으로 구성되어 있어야 합니다 <ph type="x-smartling-placeholder">
그럴 수 없다면 다음 옵션 중 하나를 사용하여 자체 서명을 허용하는 것이 좋습니다. 다른 Google Cloud 인증서를 사용할 수 있습니다
<ph type="x-smartling-placeholder">옵션 1: Edge Microgateway가 모든 정책을 신뢰하도록 시스템 속성 설정 인증서
- Docker를 사용하는 경우 다음을 참조하세요. <ph type="x-smartling-placeholder"></ph> Node.js에서 신뢰하지 않는 CA 사용
그렇지 않으면
NODE_EXTRA_CA_CERTS
라는 환경 변수를 내보냅니다. 루트 CA 파일을 가리키는 것입니다이는 공식 Node.js 있습니다.
옵션 #2: 특정 IP 주소를 신뢰하도록 Edge Microgateway YAML 구성 파일을 구성 해당 대상 서버의 인증서
- 대상 서버의 인증서 (또는 체인)가 PEM 형식인지 확인합니다. 받는사람 다른 인증서 형식을 PEM으로 변환하려면 <ph type="x-smartling-placeholder"></ph> 지원되는 형식으로 인증서 변환을 참조하세요.
인증서 체인이 있는 경우 인증서가 올바른 있습니다. 리프 인증서가 항상 첫 번째에 오고 그 다음에 중간 인증서가 와야 합니다. 인증서, 루트 인증서를 차례로 선택합니다. 이에 대한 자세한 설명은 <ph type="x-smartling-placeholder"></ph> 인증서 체인의 유효성 검사.
다음 예제에서는
untrusted-root.badssl.com
edgemicro: ... targets: - host: 'untrusted-root.badssl.com' ssl: client ca: /opt/apigee/certs/untrusted-root.pem
이를 구성하는 방법에 대한 안내는 <ph type="x-smartling-placeholder"></ph> Edge Microgateway 모듈 - 단방향 및 양방향 Southbound TLS 구성 동영상 다음을 참고하세요. <ph type="x-smartling-placeholder"></ph> Edge Microgateway 서버에서 SSL 구성을 참조하세요.
문제가 계속되면 진단 정보를 수집해야 합니다.
원인: Apigee Edge 관리 서버가 자체 서명 인증서를 사용합니다.
<ph type="x-smartling-placeholder">Edge Microgateway를 처음 설정할 때 실행해야 하는 명령어 중 하나
edgemicro configure
또는 edgemicro private configure
입니다. 이 명령어는
클러스터를 부트스트랩하면 Apigee Edge에 접속하여 필요한 정보를 다운로드합니다.
Edge 프라이빗 클라우드의 경우 관리 서버 URL은 -m
인수로 결정됩니다.
관리 서버에 TLS를 사용 설정한 경우 Edge Microgateway에서 확인을 시도합니다.
관리 서버에서 제공하는 인증서를 사용합니다.
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
관리 서버가 자체 서명 인증서로 구성된 경우 콘솔 출력에 다음 오류가 표시됩니다.
{ 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.apigee-dev.net
개) 자체 서명 TLS 인증서를 반환할 수 있습니다. - Apigee Edge 시스템 관리자가 인증서를 제공했을 수 있습니다. 사본도 있습니다
- 그렇지 않으면 다음 명령어를 실행하여 인증서에 대한 정보를 가져옵니다.
echo | openssl s_client -connect management.apigee-dev.net:8443 -servername management.apigee-dev.net | openssl x509 -noout
- 관리 서버에 자체 서명 인증서가 있는 경우 이것이 이 문제의 원인입니다. 있습니다.
해상도
- 대상 서버를 소유한 팀과 협력하여 인증 기관에서 서명한 올바른 TLS 인증서를 조달합니다. 신뢰할 수 있는 인증 기관 (CA)으로 구성되어 있어야 합니다 <ph type="x-smartling-placeholder">
그렇게 할 수 없는 경우 다음을 실행하여 자체 서명을 허용합니다. 다른 Google Cloud 인증서를 사용할 수 있습니다
<ph type="x-smartling-placeholder">
- Edge Microgateway가 모든 인증서를 신뢰하도록 시스템 속성을 설정합니다.
- Docker를 사용하는 경우 다음을 참조하세요. <ph type="x-smartling-placeholder"></ph> Node.js에서 신뢰하지 않는 CA 사용
- 그렇지 않으면
NODE_EXTRA_CA_CERTS
라는 환경 변수를 내보냅니다. 루트 CA 파일을 가리키고 있습니다. 공식 문서에 문서화된 Node.js 웹사이트 <ph type="x-smartling-placeholder">
진단 정보 수집 필요
위의 안내를 따른 후에도 문제가 지속되면 다음을 수집합니다. Apigee Edge 지원팀에 문의하세요.
- 로그 파일: 기본 폴더는
/var/tmp
이지만 다음에서 재정의할 수 있습니다. 기본config.yaml
파일 (logging > dir parameter
) 그것은 제공 전에log > level
를info
로 변경하는 것이 좋습니다. 로그 파일을 Apigee Edge 지원팀에 전달합니다. - 구성 파일: Edge Microgateway의 기본 구성은 YAML에 있습니다.
기본 Edge Microgateway 폴더(
$HOME/.edgemicro
)에 있습니다. 이default.yaml
라는 기본 구성 파일과 환경당 하나씩 ORG-ENV-config.yaml
이 파일 업로드 영향을 받는 조직 및 환경 전체참조 문서
<ph type="x-smartling-placeholder"></ph> TLS를 사용하여 Edge API에 액세스하도록 Edge UI 구성하기