Saya menyadari ini terlihat seperti duplikat dari setidaknya beberapa pertanyaan lain, tetapi saya telah membacanya beberapa kali dan masih melakukan kesalahan.
Berikut ini adalah isi dari file konfigurasi nginx myexample.com saya yang terletak di /etc/nginx/sites-available
.
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name myexample.com www.myexample.com;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
ssl_certificate /etc/letsencrypt/live/myexample.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.com/privkey.pem;
#Configures the publicly served root directory
#Configures the index file to be served
root /var/www/myexample.com;
index index.html index.htm;
}
Ini berfungsi, ketika saya membuka https://myexample.com kontennya disajikan dan koneksi aman. Jadi konfigurasi ini sepertinya bagus.
Sekarang jika saya mengubah port ssl ke 9443 dan memuat ulang konfigurasi nginx, konfigurasi tersebut memuat ulang tanpa kesalahan, tetapi mengunjungi https://myexample.com menunjukkan kesalahan pada browser (Situs ini tidak dapat dijangkau / myexample.com menolak untuk terhubung. ERR_CONNECTION_REFUSED)
Saya telah mencoba saran dan dokumentasi di sini , di sini , dan di sini (di antara yang lain) tetapi saya selalu mendapatkan kesalahan ERR_CONNECTION_REFUSED.
Saya harus mencatat bahwa saya dapat menggunakan port non-standar dan kemudian secara eksplisit mengetik port itu ke dalam URL, misalnya, https://myexample.com:9443 . Tetapi saya tidak ingin melakukan itu. Yang saya inginkan adalah agar pengguna dapat mengetikkan myexample.com ke dalam browser apa pun dan meminta nginx mengalihkan ke koneksi aman secara otomatis.
Sekali lagi, saya tidak punya masalah apa pun ketika saya menggunakan port standar 443 SSL.
Sunting: Saya menggunakan nginx / 1.6.2 di debian / jessie
Jawaban:
Untuk mendukung pengetikan " https://myexample.com " di peramban Anda, dan setelah itu ditangani oleh
nginx
konfigurasi mendengarkan di port 9443, Anda akan memerlukannginx
konfigurasi tambahan yang masih mendengarkan pada port 443, karena itu adalah port IP untuk yang disambungkan oleh browser .Jadi:
Perhatikan bahwa sertifikat / kunci yang sama diperlukan untuk kedua bagian, karena sertifikat biasanya dikaitkan dengan nama host DNS, tetapi tidak harus port.
Semoga ini membantu!
sumber
Saat Anda mengetik https://example.com , standar untuk skema https: // adalah menyambung ke port 443. Dalam kasus Anda, Anda telah memindahkan server Anda sehingga sekarang mendengarkan pada port 9443. Sambungan Anda ditolak pesan karena ini - tidak ada yang mendengarkan pada port 443.
Anda perlu mengatur agar sesuatu mendengarkan pada port 443 yang mengalihkan koneksi ke port 9443 atau menggunakan port sebagai bagian dari URL.
sumber
jika Anda mengubah port ke port non standar seperti 9443 Anda harus menambahkan redirection dari 443 ke 9443. Set nginx untuk membalikkan proxy ke port itu.
sumber