Ketika saya menggunakan API openssl untuk memvalidasi sertifikat server (ditandatangani sendiri), saya mendapat kesalahan berikut:
error 19 pada pencarian kedalaman 1: sertifikat yang ditandatangani sendiri dalam sertifikat rantai
Sesuai openssl dokumentasi, kesalahan ini (19) adalah
"X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: sertifikat yang ditandatangani sendiri dalam rantai sertifikat rantai sertifikat - rantai sertifikat dapat dibangun menggunakan sertifikat yang tidak dipercaya tetapi root tidak dapat ditemukan secara lokal."
Mengapa kesalahan ini terjadi ? Apakah ada masalah dengan sertifikat server saya ?
Anda memiliki sertifikat yang ditandatangani sendiri, jadi secara default sertifikat tersebut non-trusted, itulah mengapa OpenSSL mengeluh. Peringatan ini sebenarnya adalah hal yang baik, karena skenario ini mungkin juga muncul karena serangan man-in-the-middle.
Untuk mengatasi hal ini, Anda harus menginstalnya sebagai server terpercaya. Jika ditandatangani oleh CA yang tidak tepercaya, Anda juga harus menginstal sertifikat CA tersebut.
Lihatlah tautan ini tentang menginstal sertifikat yang ditandatangani sendiri.
Berikut ini adalah one-liner untuk memverifikasi rantai sertifikat:
openssl verify -verbose -x509_strict -CAfile ca.pem cert_chain.pem
Ini tidak perlu menginstal CA di mana pun.
Lihat https://stackoverflow.com/questions/20409534/how-does-an-ssl-certificate-chain-bundle-work untuk detailnya.
Solusi untuk kesalahan ini adalah dengan menambahkan baris ini di bagian atas kode:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";