GNU/Linux >> Belajar Linux >  >> Linux

Kesalahan mengakses layanan backend – WSO2 lupa kata sandi

Saya telah berhasil mengonfigurasi WSO2 dan proxy terbalik NGINX juga diatur. Namun, mengeklik tautan lupa kata sandi dari penerbit atau halaman masuk portal pengembang membuat saya mengalami kesalahan – Kesalahan saat mengakses layanan backend dan melihat wso2carbon.log file mengungkapkan informasi lebih lanjut:

"ERROR {org.wso2.carbon.identity.mgt.endpoint.util.client.ApiClient} -
 Error while performing the request method: GET on the resource: https://localhost:9443/api/identity/recovery/v0.9/captcha?tenant-domain=carbon.super&captcha-type=ReCaptcha&recovery-type=password-recovery com.sun.jersey.api.client.ClientHandlerException: 
javax.net.ssl.SSLHandshakeException: No subject alternative DNS name matching localhost found".

Nah, kesalahan tersebut dengan jelas menunjukkan bahwa URL localhost digunakan oleh WSO2 untuk terhubung ke titik akhir pemulihan kata sandi saat menggunakan sertifikat SSL yang dikeluarkan untuk tg.com. Oleh karena itu, SSLHandshakeException "Tidak ditemukan nama DNS alternatif subjek yang cocok dengan localhost". Masalahnya di sini adalah, sertifikat SSL dikeluarkan oleh otoritas sertifikat Let's Encrypt dan tidak memiliki Nama Alternatif Subjek (SAN) yang disetel ke 'localhost ', jelas sekali. Klik di sini untuk mengetahui mengapa Let's Encrypt tidak mendukung localhost sebagai SAN.

Meskipun WSO2 telah dikonfigurasi untuk menggunakan nama host sebagai tg.com, layanan masih menghubungkan localhost untuk mengakses titik akhir pemulihan kata sandi. Berikut cara mengonfigurasi nama host server di repository/conf/deployment.toml .

[server]
hostname = "tg.com"

Jadi bagaimana kami memberi tahu WSO2 bahwa itu harus menggunakan nama host server alih-alih mengandalkan localhost?

WSO2 bergantung pada localhost untuk panggilan API internal dan Anda dapat melihatnya di sebagian besar file konfigurasi (di-hardcode dengan localhost). Konfigurasi ini digunakan untuk membangun URL absolut internal dari titik akhir layanan dan digunakan saat panggilan API internal dibuat. Karenanya mengganti 'localhost ' dengan nama host server langsung di file konfigurasi dapat menyebabkan berbagai masalah lain.

Untuk mengonfigurasi nama host internal, ikuti salah satu dari dua opsi berikut:

Opsi 1 :Mengatur internal_hostname variabel dalam deployment.toml berkas.

Buka deployment.toml file yang terletak di bawah 'repository/conf/ ' dan tambahkan baris di bawah ini di bawah [server] bagian.

internal_hostname = "tg.com"

Ingatlah untuk mengubahnya dengan nama host yang diinginkan.

Opsi 2: Tambahkan localhost sebagai Nama Alternatif Subjek

Nah, opsi lain adalah membuat sertifikat yang ditandatangani sendiri dengan localhost yang ditambahkan ke atribut SAN.

keytool -genkey -alias <alias_name> -keyalg RSA -keysize 2048 -keystore <keystore_name>.jks -dname "CN=<hostname>, OU=<organizational_unit>,O=<organization>,L=<Locality>,S=<State/province>,C=<country_code>" -storepass <keystore_password> -keypass <confirm_keystore_password> -ext SAN=dns:localhost -ext ExtendedKeyUsage=serverAuth -validity 825

Catatan: Sertifikat yang ditandatangani sendiri hanya dapat digunakan di lingkungan pengembangan dan pengujian.

Lihat panduan ini tentang cara menyiapkan Keystore untuk WSO2.


Linux
  1. Memperbaiki 'Kesalahan Manipulasi Token Otentikasi' di Ubuntu Linux

  2. Perintah "ntpq -pn" kembali dengan kesalahan "Nama atau layanan tidak dikenal"

  3. GALAT 1045 (28000):Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata sandi:YA)

  1. Pengambilan Kunci Publik tidak diizinkan – Kesalahan MySQL WSO2

  2. mount error 13 =Izin ditolak

  3. (jaringan tidak dapat dijangkau) di log server saya

  1. [OpenStack-Devstack]:Kesalahan:Layanan n-net tidak berjalan saat menjalankan stack.sh

  2. Kesalahan menggunakan GRANT dengan IDENTIFIED dengan kata sandi di MySQL

  3. Mengakses Langganan di Plesk Menghasilkan Kesalahan