Inilah kesalahan yang saya dapatkan:
Reload konfigurasi nginx: nginx: [emerg] SSL_CTX_use_certificate_chain_file ("/ path / ke / cert.pem") gagal (SSL: error: 02001002: pustaka sistem: fopen: Tidak ada kesalahan pada file atau direktori: 20074002: rutinitas BIO: FILE_CTRL: sistem lib error: 140DC002: rutinitas SSL: SSL_CTX_use_certificate_chain_file: system lib) nginx: file konfigurasi /etc/nginx/nginx.conf gagal
Saya 100% yakin bahwa file tersebut ada di lokasi itu tetapi Nginx tampaknya berpikir bahwa itu tidak ada. Saya menggabungkan domain.crt
dan intermediate.crt
secara manual dalam urutan itu. Aku menggaruk kepalaku selama ini sepanjang hari. Saya harap seseorang telah melihat kesalahan ini dan memiliki solusi. (Dan catatan tambahan itu bukan kesalahan dalam menempel bahwa lokasi file hanya ditampilkan sekali dan tidak lagi setelah 'tidak ada file atau direktori').
sumber
path/to/cert.pem
tentu bukan lokasi yang valid.Jawaban:
Apakah Anda yakin bahwa pengguna Nginx memiliki akses ke direktori?
Periksa juga izin
.pem
file, jika Nginx tidak dapat mengaksesnya, itu dapat ditampilkan sebagai'no such file or directory'
.Jika izinnya benar, Anda mungkin memeriksa jalur yang sebenarnya lagi. Bagaimana Anda menempelkannya (yang saya tahu Anda menghapus dir) tidak ada awal
/
yang bisa menjadi masalah.EDIT
Coba pindahkan pengaturan SSL Anda ke struktur berikut (serta ubah
nginx.conf
untuk mencerminkan):Nginx bisa gagal pada Anda
.pem
karena izin terlalu terbuka (perlu sumber untuk memverifikasi bahwa Nginx melakukan ini) tetapi pengaturan di atas harus berfungsi dengan baik.sumber
/
di awal jadi saya mengubah pertanyaan untuk mencerminkan itu. File ini terletak di/home/user/subdirs
dan semua file dan izin direktori di dalamnya dimiliki oleh user.www-data (username.group name) dan 775 set. Dan saya pikir nginx memiliki akses ke apa pun yang dimiliki oleh www-data, meskipun saya bisa saja salah.$root/keys/
saya sehingga garis sertifikat saya terlihat sepertissl_certificate keys/cert.pem
... apakah harus ada di webroot?chmod -R 600 /etc/nginx/ssl
titik masuk saya menyelesaikan masalah terima kasihSaya akan meninggalkan jawaban saya untuk masalah saya, kalau-kalau ada orang yang menemukan topik ini.
Saya telah menjalankan nginx di dalam wadah buruh pelabuhan, dan memiliki kesalahan yang sama ketika mencoba mengakses file kunci pribadi. Setelah menggaruk-garuk kepala selama beberapa jam, saya menyadari bahwa nginx buruh pelabuhan saya tidak memiliki volume pemasangan yang berisi data saya.
Satu-satunya opsi untuk menambah volume pemasangan adalah menghapus dan membuat ulang wadah dengan
-v
opsi: https://docs.docker.com/engine/tutorials/dockervolumes/Terkadang, hal-hal sepele sulit dilihat. Semoga bantuan ini.
sumber
Skenario yang memungkinkan:
kadang-kadang mungkin terjadi bahwa, ketika mengkonfigurasi file SSL (kunci pribadi dan sertifikat) untuk Virtualhost yang sedang dikonfigurasi, itu lupa untuk menentukan jalur absolut di mana file-file ini berada.
Misalnya, jika Anda mengikuti dokumen resmi ini dari Nginx: http://nginx.org/en/docs/http/configuring_https_servers.html
Misalkan Anda menyimpan file SSL di dalam " /etc/nginx/conf.d ":
Apa yang terjadi?
Secara default, ketika tidak ditentukan path absolut untuk file biasa yang digunakan oleh Nginx, Nginx akan mencari file di "/ etc / nginx"
Dari /var/log/nginx/error.log
Apa yang harus dilakukan?
Untuk menentukan jalur absolut dari file tambahan yang digunakan oleh konfigurasi Virtualhost Anda.
Seperti ini:
sumber
Saya memiliki masalah yang sama. Saya harus mengubah file / etc / nginx / situs-enabled / default & default.save yang ditambahkan secara otomatis nama situs saya tanpa .com setelah proses setup, YANG ADALAH MASALAH DALAM INSTAN SAYA . Agar singkat, dua baris ini perlu diubah di / etc / nginx / sites-enabled / default saya. Harap perhatikan bahwa file ini ditampilkan dengan ikon pintasan di sistem file saya, tetapi saya dapat mengklik kanan file tersebut dan mengeditnya dengan opsi "Edit / Penyunting Internal".
HTTPS - permintaan proxy ke Node.js ap lokal # HTTPS - permintaan proxy ke aplikasi Node.js lokal: server {listen 443; server_name switchmagic.com;
Ketika saya membaca file-file dan menambahkan .com, yang merupakan konvensi penamaan yang saya gunakan untuk menambahkan file, ke referensi switchmagic di direktori file yang melempar kesalahan, semuanya baik-baik saja! Saya menemukan banyak Dev yang mengajukan pertanyaan yang sama jadi saya ingin melempar solusi saya di luar sana untuk membantu karena jawaban yang saya temukan sebagian besar tentang izin root, tetapi izin root bukan masalah dalam kasus saya. Rock on Devs.
sumber