Anda sedang melihat dokumentasi Apigee Edge.
  Buka
     Dokumentasi Apigee X. info
Gejala
    Aplikasi klien mendapatkan kode status HTTP 503 Service Unavailable dengan
    kode error messaging.adaptors.http.flow.SslHandshakeFailed sebagai respons untuk API
    panggilan telepon.
  
Pesan error
Aplikasi klien mendapatkan kode respons berikut:
HTTP/1.1 503 Service Unavailable
Selain itu, Anda mungkin melihat pesan error berikut:
{
   "fault":{
      "faultstring":"SSL Handshake failed sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target",
      "detail":{
         "errorcode":"messaging.adaptors.http.flow.SslHandshakeFailed"
      }
   }
}Kemungkinan penyebab
    Anda mungkin mendapatkan kode status 503 Service Unavailable dengan kode error
    messaging.adaptors.http.flow.SslHandshakeFailed karena kegagalan selama SSL
    proses handshake antara Pemroses Pesan Apigee Edge dan server backend untuk sejumlah
    alasan. Pesan error di faultstring  biasanya menunjukkan
    kemungkinan penyebab tingkat tinggi 
yang menyebabkan kesalahan ini.
    Bergantung pada pesan error yang diamati di faultstring, Anda harus menggunakan
    teknik yang tepat untuk 
memecahkan masalah tersebut. Playbook ini menjelaskan cara memecahkan masalah
    error ini jika Anda melihat pesan error SSL Handshake failed
    sun.security.validator.ValidatorException: PKIX path building failed:
    sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification
    path to requested target di faultstring.
  
Error ini terjadi selama proses handshake SSL antara Pemroses Pesan Apigee Edge dan server backend:
- Jika truststore dari Pemroses Pesan Apigee Edge:
        
- Berisi rantai sertifikat yang tidak cocok dengan server backend lengkap rantai sertifikat, ATAU
 - Tidak berisi rantai sertifikat lengkap server backend
 
 - Jika rantai sertifikat yang ditampilkan oleh server backend:
        
- Berisi Nama Domain yang Memenuhi Syarat (FQDN) yang tidak cocok dengan nama host yang ditentukan di endpoint target
 - Berisi rantai sertifikat yang salah atau tidak lengkap
 
 
Kemungkinan penyebab masalah ini adalah sebagai berikut:
| Penyebab | Deskripsi | Petunjuk pemecahan masalah berlaku untuk | 
|---|---|---|
| Sertifikat atau rantai sertifikat salah/tidak lengkap di truststore Pemroses Pesan | Sertifikat dan/atau rantai yang disimpan di truststore Pemroses Pesan Apigee Edge tidak cocok dengan rantai sertifikat server backend atau tidak berisi rantai sertifikat lengkap server backend. | Pengguna Edge Private Cloud dan Public Cloud | 
| Ketidakcocokan FQDN dalam sertifikat server backend dan nama host di endpoint target | Sertifikat yang diberikan oleh server backend berisi FQDN yang tidak cocok dengan nama host yang ditentukan di endpoint target. | Pengguna Edge Private Cloud dan Public Cloud | 
| Sertifikat atau rantai sertifikat yang salah/tidak lengkap yang diberikan oleh server backend | Rantai sertifikat yang diberikan oleh server backend salah atau tidak lengkap. | Pengguna Edge Private Cloud dan Public Cloud | 
Langkah-langkah diagnosis umum
Gunakan salah satu alat/teknik berikut untuk mendiagnosis error ini:
Pemantauan API
Prosedur #1: Menggunakan Pemantauan API
Untuk mendiagnosis error menggunakan Pemantauan API:
- Login ke UI Apigee Edge sebagai pengguna dengan peran yang sesuai.
 Beralihlah ke organisasi tempat Anda ingin menyelidiki masalah tersebut.
        - Buka Analyze > Pemantauan API > Investigasi.
 - Pilih jangka waktu tertentu saat Anda melihat error.
 Gambarkan Kode Kesalahan terhadap Waktu.
Pilih sel yang memiliki kode fault
messaging.adaptors.http.flow.SslHandshakeFailedseperti yang ditunjukkan di bawah ini:( lihat gambar yang lebih besar)

Informasi tentang kode kesalahan
messaging.adaptors.http.flow.SslHandshakeFailedditampilkan sebagai yang ditampilkan di bawah ini:( lihat gambar yang lebih besar)

Klik Lihat log , lalu luaskan baris untuk permintaan yang gagal.
( lihat gambar yang lebih besar)
        - Dari jendela Logs, perhatikan detail berikut:
          
- Minta ID Pesan
 - Kode Status: 
503 - Sumber Kesalahan: 
target - Kode Kesalahan: 
messaging.adaptors.http.flow.SslHandshakeFailed 
 
Trace
Prosedur #2: Menggunakan alat Rekaman Aktivitas
Untuk mendiagnosis error menggunakan alat Trace:
- Aktifkan sesi rekaman aktivitas dan
          
- Tunggu hingga error 
503 Service Unavailabledisertai kode errormessaging.adaptors.http.flow.SslHandshakeFailedterjadi, atau - Jika Anda dapat mereproduksi masalah, lakukan panggilan API untuk mereproduksi masalah
              
503 Service Unavailable 
 - Tunggu hingga error 
 Pastikan Tampilkan semua FlowInfos diaktifkan:

- Pilih salah satu permintaan yang gagal dan periksa rekaman aktivitasnya.
 - Menavigasi melalui berbagai fase pelacakan dan menemukan tempat terjadinya kegagalan.
 Anda akan menemukan error ini, biasanya setelah fase Alur Permintaan Target Dimulai sebagaimana ditunjukkan di bawah ini:
( lihat gambar yang lebih besar)

- Perhatikan nilai berikut dari rekaman aktivitas:
          
- error:  
SSL Handshake failed sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target - error.cause: 
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target - error.class: 
com.apigee.errors.http.server.ServiceUnavailableException - Nilai error 
SSL Handshake failed sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetmenunjukkan bahwa SSL Handshake gagal, karena Pemroses Pesan Apigee Edge tidak dapat memvalidasi CA {i>root<i}. 
 - error:  
 - Buka Fase AX (Data Analytics Direkam) di rekaman aktivitas, lalu klik Fase tersebut.
 Scroll ke bawah ke bagian Fase Details Error Headers dan tentukan X-Apigee-fault-code dan X-Apigee-fault-source, serta X-Apigee-Message-ID seperti yang ditunjukkan di bawah ini:
( lihat gambar yang lebih besar)

- Perhatikan nilai X-Apigee-fault-code, X-Apigee-fault-source, dan X-Apigee-Message-ID:
 
| Header error | Nilai | 
|---|---|
| X-Apigee-fault-code | messaging.adaptors.http.flow.SslHandshakeFailed | 
            
| X-Apigee-fault-source | target | 
            
| X-Apigee-Message-ID | MESSAGE_ID | 
NGINX
Prosedur #3: Menggunakan log akses NGINX
Untuk mendiagnosis error menggunakan log akses NGINX:
- Jika Anda adalah pengguna Private Cloud, Anda dapat menggunakan log akses NGINX untuk menentukan
        informasi penting tentang HTTP 
503 Service Unavailable. Periksa log akses NGINX:
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log- Telusuri apakah ada 
503error dengan kode errormessaging.adaptors.http.flow.SslHandshakeFailedselama durasi tertentu (jika masalah terjadi di sudah lewat) atau jika ada permintaan yang masih gagal dengan503. Jika Anda menemukan error
503dengan pencocokan X-Apigee-fault-code nilaimessaging.adaptors.http.flow.SslHandshakeFailed, lalu tentukan nilai X-Apigee-fault-source.Contoh error 503 dari log akses NGINX:
( lihat gambar yang lebih besar)
        Contoh entri dari log akses NGINX di atas memiliki nilai berikut untuk X-Apigee-fault-code dan X-Apigee-fault-source:
Header Nilai X-Apigee-fault-code messaging.adaptors.http.flow.SslHandshakeFailedX-Apigee-fault-source target
Log Pemroses Pesan
Prosedur #4: Menggunakan Log Pemroses Pesan
- Tentukan ID pesan dari salah satu permintaan yang gagal menggunakan Pemantauan API, Alat Trace, atau Log Akses NGINX seperti yang dijelaskan dalam Langkah-langkah diagnosis umum.
 Menelusuri ID pesan permintaan tertentu di log Pemroses Pesan (
/opt/apigee/var/log/edge-message-processor/logs/system.log). Anda mungkin mengamati error berikut:org:myorg env:test api:MyProxy rev:1
messageid:myorg-28247-3541813-1NIOThread@1 ERROR HTTP.CLIENT - HTTPClient$Context.handshakeFailed() : SSLClientChannel[Connected: Remote:X.X.X.X:443 Local:192.168.194.140:55102]@64596 useCount=1 bytesRead=0 bytesWritten=0 age=233ms lastIO=233ms isOpen=true handshake failed, message: General SSLEngine problemError di atas menunjukkan bahwa handshake SSL gagal di antara Pemroses Pesan dan server backend.
Ini akan diikuti oleh pengecualian dengan pelacakan tumpukan mendetail seperti yang ditunjukkan di bawah ini:
org:myorg env:test api:MyProxy rev:1
messageid:myorg-28247-3541813-1NIOThread@1 ERROR ADAPTORS.HTTP.FLOW - RequestWriteListener.onException() : RequestWriteListener.onException(HTTPRequest@1522922c) javax.net.ssl.SSLHandshakeException: General SSLEngine problem at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1478) at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535) ... <snipped> Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem at sun.security.ssl.Alerts.getSSLException(Alerts.java:203) at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1728) ... <snipped>Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302) ... <snipped>Perhatikan bahwa kegagalan handshake disebabkan oleh:
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetHal ini menunjukkan bahwa SSL Handshake gagal karena Pemroses Pesan Apigee Edge tidak dapat memvalidasi sertifikat server backend.
Penyebab: Sertifikat atau rantai sertifikat salah/tidak lengkap di truststore Pemroses Pesan
Diagnosis
- Tentukan Kode Kesalahan, Sumber Kesalahan untuk error yang diamati menggunakan API Log akses Monitoring, Trace, atau NGINX seperti yang dijelaskan dalam bagian langkah-langkah diagnosis kami.
 - Jika Kode Kesalahan adalah 
messaging.adaptors.http.flow.SslHandshakeFailed, tentukan pesan error menggunakan salah satu metode berikut: - Temukan error.cause menggunakan alat Trace seperti yang dijelaskan di Langkah-langkah diagnosis umum
 - Temukan pengecualian menggunakan Log Pemroses Pesan seperti yang dijelaskan dalam Langkah-langkah diagnosis umum
 - Temukan 
faultstringdari respons error terhadap panggilan API Anda seperti yang terlihat di Pesan error - Jika pesan error adalah 
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target", hal ini menunjukkan bahwa SSL Handshake gagal, karena Pemroses Pesan Apigee Edge tidak dapat memvalidasi CA {i>root<i}. 
Anda dapat men-debug masalah ini dalam dua tahap:
- Fase 1: Menentukan rantai sertifikat server backend
 - Fase 2: Membandingkan rantai sertifikat yang disimpan di truststore Pemroses Pesan
 
Fase 1
Fase 1: Menentukan rantai sertifikat server backend
Gunakan salah satu metode berikut untuk menentukan rantai sertifikat server backend:
openssl
Jalankan perintah openssl terhadap host server backend
                  sebagai berikut:
openssl s_client -connect BACKEND_SERVER_HOST_NAME:PORT#
Perhatikan rantai Sertifikat dari output perintah di atas:
Contoh rantai Sertifikat server backend dari output perintah openssl:
Certificate chain 0 s:/CN=mocktarget.apigee.net i:/C=US/O=Google Trust Services LLC/CN=GTS CA 1D4 1 s:/C=US/O=Google Trust Services LLC/CN=GTS CA 1D4 i:/C=US/O=Google Trust Services LLC/CN=GTS Root R1 2 s:/C=US/O=Google Trust Services LLC/CN=GTS Root R1 i:/C=US/O=Google Trust Services LLC/CN=GTS Root R1
tcpdump
- Jika Anda adalah pengguna Cloud Publik, tangkap paket TCP/IP di server backend.
 - Jika Anda adalah pengguna Private Cloud, Anda dapat menangkap TCP/IP paket pada server backend atau {i>Message Processor<i}. Sebaiknya, rekam video tersebut server backend saat paket didekripsi di server backend.
 Gunakan Perintah tcpdump untuk menangkap paket TCP/IP:
tcpdump -i any -s 0 host IP_ADDRESS -w FILE_NAME
Analisis paket TCP/IP menggunakan tool Wireshark atau alat serupa yang sudah Anda kenal.
Contoh Analisis Tcpdump
( lihat gambar yang lebih besar)
                  - Paket #43: Pemroses Pesan (Sumber) mengirim
                      
Client Helloke server backend (Tujuan). - Paket #44: Server backend mengonfirmasi penerimaan
                      Pesan 
Client Hellodari Pemroses Pesan. - Paket #45: Server backend mengirim 
Server Hellopesan bersama dengan sertifikatnya. - Paket #46: Pemroses Pesan mengonfirmasi telah diterimanya
                      pesan 
Server Hellodan sertifikat. Paket #47: Pemroses Pesan mengirim
FIN, ACKpesan yang diikuti denganRST, ACKdalam Paket #48.Ini menunjukkan bahwa validasi sertifikat server backend oleh Pemroses Pesan gagal. Itu karena Pemroses Pesan tidak memiliki sertifikat apa pun yang cocok dengan sertifikat server backend atau tidak dapat dipercaya sertifikat server backend dengan sertifikat yang tersedia di (Pemroses Pesan).
Anda dapat kembali dan meninjau Paket #45 serta menentukan sertifikatnya rantai yang dikirim oleh server backend
( lihat gambar yang lebih besar)
                    - Dalam contoh ini, Anda dapat melihat bahwa server telah mengirim sertifikat leaf
                      dengan 
common name (CN) = mocktarget.apigee.net, diikuti dengan intermediate certificate denganCN= GTS CA 1D4dan root certificate denganCN = GTX Root R1. 
Jika Anda yakin bahwa validasi sertifikasi server gagal, maka buka Tahap 2: Membandingkan sertifikat server backend dan sertifikat yang disimpan di truststore Pemroses Pesan.
- Paket #43: Pemroses Pesan (Sumber) mengirim
                      
 
Fase 2
Tahap 2: Membandingkan sertifikat dan sertifikat server backend yang disimpan di Truststore Pemroses Pesan
- Tentukan rantai sertifikat server backend.
 - Tentukan sertifikat yang disimpan di truststore Message Processor menggunakan
            langkah-langkah berikut:
            
Mendapatkan nama referensi truststore dari elemen
TrustStoredi bagianSSLInfodalamTargetEndpoint.Mari kita lihat contoh bagian
SSLInfodalamTargetEndpointkonfigurasi:<TargetEndpoint name="default"> ... <HTTPTargetConnection> <Properties /> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://myKeystoreRef</KeyStore> <KeyAlias>myKey</KeyAlias> <TrustStore> ref://myCompanyTrustStoreRef </TrustStore> </SSLInfo> </HTTPTargetConnection> ... </TargetEndpoint>- Dalam contoh di atas, nama referensi 
TrustStoreadalahmyCompanyTruststoreRef. Di UI Edge, pilih Environments > Referensi. Perhatikan nama dalam Kolom Reference untuk referensi truststore tertentu. Ini akan menjadi nama truststore.
( lihat gambar yang lebih besar)
              Dalam contoh di atas, nama truststore adalah:
myCompanyTruststoreRef:
myCompanyTruststore
 Mendapatkan sertifikat yang disimpan di truststore (ditentukan di langkah sebelumnya) menggunakan API berikut:
Dapatkan semua sertifikat untuk keystore atau truststore. API ini mencantumkan semua sertifikat di truststore tertentu.
Pengguna Cloud Publik:
curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/ORGANIZATION_NAME/environments/ENVIRONMENT_NAME/keystores/KEYSTORE_NAME/certs -H "Authorization: Bearer $TOKEN"
Pengguna Private Cloud:
curl -v -X GET http://MANAGEMENT_HOST:PORT_#/v1/organizations/ORGANIZATION_NAME/environments/ENVIRONMENT_NAME/keystores/KEYSTORE_NAME/certs -H "Authorization: Bearer $TOKEN"
Tempat:
- ORGANIZATION_NAME adalah nama organisasi
 - ENVIRONMENT_NAME adalah nama lingkungan
 - KEYSTORE_NAME adalah nama keystore
 - $TOKEN disetel ke token akses OAuth 2.0 Anda seperti yang dijelaskan di Mendapatkan token akses OAuth 2.0
 curlopsi yang digunakan dalam contoh ini dijelaskan di Menggunakan curl
Contoh output:
Sertifikat dari contoh truststore
myCompanyTruststoreadalah:[ "serverCert" ]
- 
                Dapatkan Detail Sertifikat untuk sertifikat tertentu dari Keystore atau Truststore.
                API ini menampilkan informasi tentang sertifikat tertentu dalam metode
                truststore.
                
Pengguna Cloud Publik:
curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/ORGANIZATION_NAME/environments/ENVIRONMENT_NAME/keystores/KEYSTORE_NAME/certs/CERT_NAME -H "Authorization: Bearer $TOKEN"
Pengguna Private Cloud
curl -v -X GET http://MANAGEMENT_HOST:PORT_#>/v1/organizations/ORGANIZATION_NAME/environments/ENVIRONMENT_NAME/keystores/KEYSTORE_NAME/certs/CERT_NAME -H "Authorization: Bearer $TOKEN"
Tempat:
- ORGANIZATION_NAME adalah nama organisasi
 - ENVIRONMENT_NAME adalah nama lingkungan
 - KEYSTORE_NAME adalah nama keystore
 - CERT_NAME adalah nama sertifikat
 - $TOKEN disetel ke token akses OAuth 2.0 Anda seperti yang dijelaskan di Mendapatkan token akses OAuth 2.0
 curlopsi yang digunakan dalam contoh ini dijelaskan di Menggunakan curl
Contoh Output
Detail
serverCertmenampilkan subjek dan penerbit sebagai berikut:Sertifikat Daun Nest/Entitas:
"subject": "CN=mocktarget.apigee.net", "issuer": "CN=GTS CA 1D4, O=Google Trust Services LLC, C=US",
Sertifikat Menengah:
"subject" : "CN=GTS CA 1D4, O=Google Trust Services LLC, C=US", "issuer" : "CN=GTS Root R1, O=Google Trust Services LLC, C=US",
 
Verifikasi bahwa sertifikat server sebenarnya yang diperoleh di langkah 1 dan sertifikat disimpan di truststore yang diperoleh pada langkah 3. Jika tidak cocok, maka itu adalah penyebab masalah tersebut.
Dari contoh yang ditunjukkan di atas, mari kita lihat satu sertifikat pada satu waktu:
- Sertifikat Daun Nest:
              
Dari server backend:
s:/CN=mocktarget.apigee.net i:/C=US/O=Google Trust Services LLC/CN=GTS CA 1D4
Dari truststore Pemroses Pesan (klien):
"subject": "CN=mocktarget.apigee.net", "issuer": "CN=GTS CA 1D4, O=Google Trust Services LLC, C=US",
leaf certificate yang disimpan di truststore cocok dengan backend server tertentu.
 - Intermediate certificate:
                
Dari server backend:
s:/C=US/O=Google Trust Services LLC/CN=GTS CA 1D4 i:/C=US/O=Google Trust Services LLC/CN=GTS Root R1
Dari truststore Pemroses Pesan (klien):
"subject" : "CN=GTS CA 1D4, O=Google Trust Services LLC, C=US", "issuer" : "CN=GTS Root R1, O=Google Trust Services LLC, C=US",
Sertifikat perantara yang disimpan di truststore cocok dengan server backend.
 - Root certificate:
              
Dari server backend:
s:/C=US/O=Google Trust Services LLC/CN=GTS Root R1 i:/C=US/O=Google Trust Services LLC/CN=GTS Root R1
{i>Root certificate<i} benar-benar hilang dalam Pemroses Pesan truststore.
 Karena {i>root certificate<i} tidak ada di {i>truststore<i}, maka Pemroses Pesan menampilkan pengecualian berikut:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
dan menampilkan
503 Service Unavailabledengan kode errormessaging.adaptors.http.flow.SslHandshakeFailedkepada klien menggunakan berbagai aplikasi obrolan.
- Sertifikat Daun Nest:
              
 
Resolusi
- Pastikan Anda memiliki rantai sertifikat yang benar dan lengkap dari server backend.
 - Jika Anda adalah pengguna Cloud Publik, ikuti petunjuk di Perbarui sertifikat TLS untuk Cloud guna memperbarui sertifikat ke sertifikat Apigee Edge Truststore Pemroses Pesan.
 - Jika Anda adalah pengguna Private Cloud, ikuti petunjuk di Perbarui sertifikat TLS untuk Private Cloud guna memperbarui sertifikat menjadi Truststore Pemroses Pesan Apigee Edge.
 
Penyebab: Ketidakcocokan FQDN dalam sertifikat server backend dan nama host di endpoint target
    Jika server backend menyajikan rantai sertifikat yang berisi FQDN, yang tidak cocok dengan
    nama host yang ditentukan di endpoint target, maka Proses Pesan Apigee Edge menampilkan error
    SSL Handshake failed sun.security.validator.ValidatorException: PKIX path building failed:
    sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification
    path to requested target.
  
Diagnosis
- Periksa endpoint target spesifik di proxy API tempat Anda mengamati hal ini
      dan catat nama host server backend:
      
Contoh TargetEndpoint:
<TargetEndpoint name="default"> … <HTTPTargetConnection> <Properties /> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://backend.company.com/resource</URL> </HTTPTargetConnection> </TargetEndpoint>Pada contoh di atas, nama host server backend adalah
backend.company.com. Tentukan FQDN di sertifikat server backend menggunakan
opensslseperti yang ditunjukkan di bawah ini:openssl s_client -connect BACKEND_SERVER_HOST_NAME>:PORT_#>
Contoh:
openssl s_client -connect backend.company.com:443
Periksa bagian
Certificate chaindan catat FQDN yang ditentukan sebagai bagian dari CN dalam subjek sertifikat entitas akhir.Certificate chain 0 s:/
CN=backend.apigee.neti:/C=US/O=Google Trust Services LLC/CN=GTS CA 1D4 1 s:/C=US/O=Google Trust Services LLC/CN=GTS CA 1D4 i:/C=US/O=Google Trust Services LLC/CN=GTS Root R1 2 s:/C=US/O=Google Trust Services LLC/CN=GTS Root R1 i:/C=US/O=Google Trust Services LLC/CN=GTS Root R1Pada contoh di atas, FQDN server backend adalah
backend.apigee.net.- Jika nama {i>host<i} server backend yang diperoleh dari langkah 1 dan FQDN langkah 2 tidak cocok, maka itulah penyebab kesalahannya.
 - Pada contoh yang dibahas di atas, nama {i>
host<i} di endpoint target
        
backend.company.com. Namun, nama FQDN di sertifikat server backend adalahbackend.apigee.net. Karena tidak cocok, Anda mendapatkan error ini. 
Resolusi
Anda dapat memperbaiki masalah ini menggunakan salah satu metode berikut:
FQDN benar
Perbarui keystore server backend dengan FQDN yang benar, serta sertifikat yang valid dan lengkap jaringan bisnis:
- Jika Anda tidak memiliki sertifikat server backend dengan FQDN yang benar, kemudian mendapatkan sertifikat yang sesuai dari CA (Certificate Authority) yang sesuai.
 Validasikan bahwa Anda memiliki rantai sertifikat server backend yang valid dan lengkap.
- Setelah Anda memiliki rantai sertifikat yang valid dan lengkap dengan FQDN yang benar dari server backend di leaf atau sertifikat entity yang identik dengan nama host yang ditentukan di endpoint target, update keystore backend dengan rantai sertifikat yang lengkap.
 
Server backend yang benar
Perbarui endpoint target dengan nama host server backend yang benar:
- Jika nama host salah ditentukan di endpoint target, perbarui metode endpoint target untuk memiliki nama host yang benar dan cocok dengan FQDN di backend sertifikat server.
 Simpan perubahan pada proxy API.
Dalam contoh yang dibahas di atas, jika nama {i>host<i} server backend salah tertentu, Anda dapat memperbaikinya dengan menggunakan {i>FQDN<i} dari sertifikat server {i>backend<i}, yaitu
backend.apigee.netsebagai berikut:<TargetEndpoint name="default"> … <HTTPTargetConnection> <Properties /> <SSLInfo> <Enabled>true</Enabled> <TrustStore>ref://myTrustStoreRef</TrustStore> </SSLInfo> <URL>https://backend.apigee.net/resource</URL> </HTTPTargetConnection> </TargetEndpoint>
Penyebab: Sertifikat atau rantai sertifikat yang salah/tidak lengkap diberikan oleh server backend
Diagnosis
- Mendapatkan rantai sertifikat server backend dengan menjalankan perintah 
openssldengan nama host server backend sebagai berikut:openssl s_client -connect BACKEND_SERVER_HOST_NAME:PORT_#
Perhatikan
Certificate chaindari output perintah di atas.Contoh Rantai Sertifikat server backend dari output perintah openssl:
Certificate chain 0 s:/
CN=mocktarget.apigee.neti:/C=US/O=Google Trust Services LLC/CN=GTS CA 1D4 1 s:/C=US/O=Google Trust Services LLC/CN=GTS CA 1D4 i:/C=US/O=Google Trust Services LLC/CN=GTS Root R1 - Memverifikasi bahwa Anda memiliki rantai sertifikat yang benar dan lengkap seperti yang dijelaskan dalam Memvalidasi rantai sertifikat.
 Jika Anda tidak memiliki rantai sertifikat yang valid dan lengkap untuk server backend, maka itulah penyebab masalah ini.
Dalam contoh rantai sertifikat server backend yang ditunjukkan di atas, root certificate tidak ada. Oleh karena itu, Anda mendapatkan error ini.
Resolusi
Perbarui keystore server backend dengan rantai sertifikat yang valid dan lengkap:
Pastikan Anda memiliki rantai sertifikat server backend yang valid dan lengkap.
- Perbarui rantai sertifikat yang valid dan lengkap di keystore server backend.
 
Jika masalah masih berlanjut, buka Harus mengumpulkan informasi diagnostik.
Harus mengumpulkan informasi diagnostik
Jika masalah berlanjut bahkan setelah mengikuti instruksi di atas, kumpulkan informasi diagnostik dan hubungi Dukungan Apigee Edge:
- Jika Anda adalah pengguna Cloud Publik, berikan informasi berikut:
        
- Nama organisasi
 - Nama lingkungan
 - Nama Proxy API
 - Selesaikan perintah 
curluntuk mereproduksi error - File detail migrasi yang menunjukkan error
 Output perintah
openssl:openssl s_client -connect BACKEND_SERVER_HOST_NAME:PORT_#- Paket TCP/IP yang ditangkap di server backend
 
 - Jika Anda adalah pengguna Private Cloud, berikan informasi berikut:
        
- Pesan error lengkap diamati
 - Paket proxy API
 - File detail migrasi yang menunjukkan error
 - Log Pemroses Pesan 
/opt/apigee/var/log/edge-message-processor/logs/system.log - Output perintah 
openssl:openssl s_client -connect BACKEND_SERVER_HOST_NAME:PORT_# - Paket TCP/IP yang diambil di server backend atau {i>Message Processor<i}.
 - Output dari Dapatkan semua sertifikat untuk keystore atau truststore API dan juga detail setiap sertifikat yang diperoleh menggunakan Dapatkan Detail Sertifikat dari Keystore atau Truststore API.
 
 
Referensi
- Sertifikat Chain of trust
 - Perintah OpenSSL