

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Kode status HTTP 502 (Gerbang Buruk)
<a name="http-502-bad-gateway"></a>

CloudFront mengembalikan kode status HTTP 502 (Bad Gateway) ketika CloudFront tidak dapat melayani objek yang diminta karena tidak dapat terhubung ke server asal. 

Jika Anda menggunakan Lambda @Edge, masalahnya mungkin kesalahan validasi Lambda. Jika Anda menerima kesalahan HTTP 502 dengan kode `NonS3OriginDnsError` kesalahan, kemungkinan ada masalah konfigurasi DNS yang CloudFront mencegah tersambung ke asal.

**Topics**
+ [Kegagalan negosiasi SSL/TLS antara CloudFront dan server asal kustom](#ssl-negotitation-failure)
+ [Origin tidak merespons dengan cipher/protokol yang didukung](#origin-not-responding-with-supported-ciphers-protocols)
+ [Sertifikat SSL/TLS pada asal kedaluwarsa, tidak valid, ditandatangani sendiri, atau rantai sertifikat dalam urutan yang salah](#ssl-certificate-expired)
+ [Origin tidak merespons pada port tertentu dalam pengaturan asal](#origin-not-responding-on-specified-ports)
+ [Kesalahan validasi Lambda](#http-502-lambda-validation-error)
+ [CloudFront kesalahan validasi fungsi](#http-502-cloudfront-function-validation-error)
+ [Kesalahan DNS () `NonS3OriginDnsError`](#http-502-dns-error)
+ [Kesalahan asal Application Load Balancer 502](#cloudfront-alb-502-error)
+ [Kesalahan 502 asal API Gateway](#cloudfront-api-gateway-502-error)

## Kegagalan negosiasi SSL/TLS antara CloudFront dan server asal kustom
<a name="ssl-negotitation-failure"></a>

Jika Anda menggunakan custom origin yang memerlukan HTTPS antara CloudFront dan asal Anda, nama domain yang tidak cocok dapat menyebabkan kesalahan. SSL/TLS Sertifikat asal Anda *harus* menyertakan nama domain yang cocok dengan **Domain Asal** yang Anda tentukan untuk CloudFront distribusi atau `Host` header permintaan asal.

Jika nama domain tidak cocok, SSL/TLS jabat tangan gagal, dan CloudFront mengembalikan kode status HTTP 502 (Bad Gateway) dan menetapkan `X-Cache` header ke. `Error from cloudfront`

Untuk menentukan apakah nama domain dalam sertifikat cocok dengan **Domain Asal** dalam distribusi atau `Host` header, Anda dapat menggunakan pemeriksa SSL online atau OpenSSL. Jika nama domain tidak cocok, Anda memiliki dua opsi:
+ Dapatkan SSL/TLS sertifikat baru yang menyertakan nama domain yang berlaku. 

  Jika Anda menggunakan AWS Certificate Manager (ACM), lihat [Meminta sertifikat publik](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html) di *Panduan AWS Certificate Manager Pengguna* untuk meminta sertifikat baru.
+ Ubah konfigurasi distribusi sehingga CloudFront tidak lagi mencoba menggunakan SSL untuk terhubung dengan asal Anda.

### Pemeriksa SSL online
<a name="troubleshooting-ssl-negotiation-failure-online-ssl-checker"></a>

Untuk menemukan alat uji SSL, cari “pemeriksaan ssl online” di internet. Biasanya, Anda menentukan nama domain Anda, dan alat mengembalikan berbagai informasi tentang SSL/TLS sertifikat Anda. Konfirmasikan bahwa sertifikat berisi nama domain Anda di **Nama Umum** atau **Nama Alternatif Subjek** bidang.

### OpenSSL
<a name="troubleshooting-ssl-negotiation-failure-openssl"></a>

Untuk membantu memecahkan masalah kesalahan HTTP 502 CloudFront, Anda dapat menggunakan OpenSSL untuk mencoba membuat koneksi ke server asal Anda. SSL/TLS Jika OpenSSL tidak dapat membuat koneksi, itu dapat menunjukkan masalah dengan konfigurasi SSL/TLS server asal Anda. Jika OpenSSL dapat membuat koneksi, ia mengembalikan informasi tentang sertifikat server asal, termasuk nama umum sertifikat `Subject CN` (bidang) dan nama `Subject Alternative Name` alternatif subjek (bidang).

Gunakan perintah OpenSSL berikut untuk menguji koneksi ke server asal Anda (*origin domain*ganti dengan nama domain server asal Anda, seperti example.com):

`openssl s_client -connect origin domain name:443`

Jika yang berikut ini benar:
+ Server asal Anda mendukung beberapa nama domain dengan beberapa sertifikat SSL/TLS
+ Distribusi Anda dikonfigurasi untuk meneruskan `Host` header ke asal

Kemudian tambahkan `-servername` opsi ke perintah OpenSSL, seperti pada contoh berikut (*CNAME*ganti dengan CNAME yang dikonfigurasi dalam distribusi Anda):

`openssl s_client -connect origin domain name:443 -servername CNAME`

## Origin tidak merespons dengan cipher/protokol yang didukung
<a name="origin-not-responding-with-supported-ciphers-protocols"></a>

CloudFront terhubung ke server asal menggunakan cipher dan protokol. Untuk daftar cipher dan protokol yang CloudFront mendukung, lihat. [Protokol dan cipher yang didukung antara dan asal CloudFront](secure-connections-supported-ciphers-cloudfront-to-origin.md) Jika asal Anda tidak merespons dengan salah satu sandi atau protokol ini di pertukaran SSL/TLS, gagal terhubung. CloudFront [Anda dapat memvalidasi bahwa asal Anda mendukung sandi dan protokol dengan menggunakan alat online seperti SSL Labs.](https://www.ssllabs.com/ssltest) Ketikkan nama domain asal Anda di **Nama host** , lalu pilih **Kirim**. Meninjau **Nama umum** dan **Nama alternatif** bidang dari pengujian untuk melihat apakah sesuai dengan nama domain asal Anda. Setelah uji selesai, temukan **Protokol** dan **Cipher Suites** bagian dalam hasil uji untuk melihat cipher atau protokol mana yang didukung oleh asal Anda. Bandingkan dengan daftar[Protokol dan cipher yang didukung antara dan asal CloudFront](secure-connections-supported-ciphers-cloudfront-to-origin.md).

## Sertifikat SSL/TLS pada asal kedaluwarsa, tidak valid, ditandatangani sendiri, atau rantai sertifikat dalam urutan yang salah
<a name="ssl-certificate-expired"></a>

Jika server asal mengembalikan berikut ini, CloudFront menjatuhkan koneksi TCP, mengembalikan kode status HTTP 502 (Bad Gateway), dan menetapkan `X-Cache` header ke: `Error from cloudfront`
+ Sertifikat yang kedaluwarsa
+ Sertifikat tidak valid
+ Sertifikat yang ditandatangani sendiri
+ Rantai sertifikat dalam urutan yang salah

**catatan**  
Jika rantai lengkap sertifikat, termasuk sertifikat perantara, tidak ada, lepaskan CloudFront koneksi TCP.

Untuk informasi tentang menginstal SSL/TLS sertifikat di server asal kustom Anda, lihat[Memerlukan HTTPS untuk komunikasi antara CloudFront dan asal kustom Anda](using-https-cloudfront-to-custom-origin.md).

## Origin tidak merespons pada port tertentu dalam pengaturan asal
<a name="origin-not-responding-on-specified-ports"></a>

Ketika Anda membuat asal pada CloudFront distribusi Anda, Anda dapat mengatur port yang CloudFront terhubung ke asal dengan untuk lalu lintas HTTP dan HTTPS. Secara default, ini adalah TCP 80/443. Anda memiliki opsi untuk mengubah port ini. Jika asal Anda menolak lalu lintas pada port ini karena alasan apa pun, atau jika server backend Anda tidak merespons pada port, CloudFront akan gagal terhubung.

Untuk memecahkan masalah ini, periksa firewall apa pun yang berjalan di infrastruktur Anda dan pastikan firewall tersebut tidak menghalangi rentang IP yang didukung. Untuk informasi selengkapnya, lihat [rentang alamat AWS IP](https://docs.aws.amazon.com/vpc/latest/userguide/aws-ip-ranges.html) di *Panduan Pengguna Amazon VPC*. Selain itu, verifikasi apakah server web Anda berjalan di tempat asalnya.

## Kesalahan validasi Lambda
<a name="http-502-lambda-validation-error"></a>

Jika Anda menggunakan Lambda @Edge, kode status HTTP 502 dapat menunjukkan bahwa respons fungsi Lambda Anda salah dibentuk atau menyertakan konten yang tidak valid. Untuk informasi selengkapnya tentang pemecahan masalah kesalahan Lambda@Edge, lihat [Uji dan debug fungsi Lambda @Edge](lambda-edge-testing-debugging.md).

## CloudFront kesalahan validasi fungsi
<a name="http-502-cloudfront-function-validation-error"></a>

Jika Anda menggunakan CloudFront fungsi, kode status HTTP 502 dapat menunjukkan bahwa CloudFront fungsi tersebut mencoba menambahkan, menghapus, atau mengubah header hanya-baca. Kesalahan ini tidak muncul selama pengujian, tetapi akan muncul setelah Anda menerapkan fungsi dan menjalankan permintaan. Untuk mengatasi kesalahan ini, periksa dan perbarui CloudFront fungsi Anda. Untuk informasi selengkapnya, lihat [Perbarui fungsi](update-function.md).

## Kesalahan DNS () `NonS3OriginDnsError`
<a name="http-502-dns-error"></a>

Kesalahan HTTP 502 dengan kode `NonS3OriginDnsError` kesalahan menunjukkan bahwa ada masalah konfigurasi DNS yang CloudFront mencegah tersambung ke asal. Jika Anda mendapatkan kesalahan ini CloudFront, pastikan konfigurasi DNS asal sudah benar dan berfungsi.

Ketika CloudFront menerima permintaan untuk objek yang kedaluwarsa atau tidak dalam cache, itu membuat permintaan ke asal untuk mendapatkan objek. Untuk membuat permintaan yang berhasil ke asal, CloudFront lakukan resolusi DNS pada domain asal. Jika layanan DNS untuk domain Anda mengalami masalah, tidak CloudFront dapat menyelesaikan nama domain untuk mendapatkan alamat IP, yang menghasilkan kesalahan HTTP 502 ()`NonS3OriginDnsError`. Untuk memperbaiki masalah ini, hubungi penyedia DNS Anda, atau, jika Anda menggunakan Amazon Route 53, lihat [Mengapa saya tidak dapat mengakses situs web saya yang menggunakan layanan DNS Route 53](https://aws.amazon.com/premiumsupport/knowledge-center/route-53-dns-website-unreachable/)?

Untuk mengatasi masalah ini lebih lanjut, pastikan bahwa [server nama otoritatif](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-concepts.html#route-53-concepts-authoritative-name-server) domain akar atau puncak zona asal Anda (seperti `example.com`) berfungsi dengan benar. Anda dapat menggunakan perintah berikut untuk menemukan server nama untuk asal puncak Anda, dengan alat seperti [dig](https://en.wikipedia.org/wiki/Dig_(command)) atau [nslookup](https://en.wikipedia.org/wiki/Nslookup):

```
dig OriginAPEXDomainName NS +short
```

```
nslookup -query=NS OriginAPEXDomainName
```

Saat Anda memiliki nama server nama Anda, gunakan perintah berikut untuk menanyakan nama domain asal Anda terhadap server tersebut guna memastikan bahwa setiap server menjawabnya dengan jawaban:

```
dig OriginDomainName @NameServer
```

```
nslookup OriginDomainName NameServer
```

**penting**  
Pastikan Anda melakukan pemecahan masalah DNS ini menggunakan komputer yang terhubung ke internet publik. CloudFront menyelesaikan domain asal menggunakan DNS publik di internet, jadi penting untuk memecahkan masalah dalam konteks yang sama.

Jika asal Anda adalah subdomain yang otoritas DNSNYA didelegasikan ke server nama yang berbeda dari domain root, pastikan bahwa catatan name server (`NS`) dan start of authority (`SOA`) dikonfigurasi dengan benar untuk subdomain. Anda dapat memeriksa catatan ini menggunakan perintah yang mirip dengan contoh sebelumnya.

Untuk informasi selengkapnya tentang DNS, lihat [konsep Sistem Nama Domain (DNS) dalam dokumentasi](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/route-53-concepts.html#route-53-concepts-domain-name-system-dns) Amazon Route 53.

## Kesalahan asal Application Load Balancer 502
<a name="cloudfront-alb-502-error"></a>

Jika Anda menggunakan Application Load Balancer sebagai asal Anda dan menerima kesalahan 502, lihat [Bagaimana cara mengatasi kesalahan Application Load Balancer HTTP](https://repost.aws/knowledge-center/elb-alb-troubleshoot-502-errors) 502? .

## Kesalahan 502 asal API Gateway
<a name="cloudfront-api-gateway-502-error"></a>

Jika Anda menggunakan API Gateway dan menerima kesalahan 502, lihat [Bagaimana cara mengatasi kesalahan HTTP 502 dari API Gateway REST dengan integrasi proxy APIs Lambda?](https://repost.aws/knowledge-center/malformed-502-api-gateway) .