Tartikel ini akan memdanu Anda melalui langkah-langkah untuk memasang sertifikat SSL Anda di Nginx dan mengatur pengalihan otomatis dari HTTP:// ke HTTPS://.
1. Unggah sertifikat di server tempat situs web Anda dihosting
Setelah melakukan langkah pembuatan kode CSR dan aktivasi SSL, Anda akan menerima file zip dengan Sertifikat Sectigo (sebelumnya dikenal sebagai Comodo) melalui email. Alternatifnya, Anda dapat mengunduhnya dari panel Akun NiceNic Anda.
Catatan: Jika Anda memilih server NGINX saat mengaktifkan sertifikat, Anda akan menerima file zip yang berisi file Sertifikat dengan ekstensi '.crt', dan file bundle Certificate Authatauity (CA) dengan ekstensi '.ca-bundle'.
Unggah kedua file tersebut ke server Anda dengan cara yang Anda sukai. Misalnya menggunakan klien FTP.
Anda juga dapat mengunduh file Bundle untuk setiap Sertifikat dengan mengikuti instruksi di sini.
2. Gabungkan semua sertifikat menjadi satu file
Anda perlu memiliki semua Sertifikat (Anda_domain.crt dan Anda_domain.ca-bundle) digabungkan dalam satu file '.crt'.
Sertifikat untuk domain Anda harus ditempatkan pertama dalam file, diikuti oleh rantai Sertifikat (CA Bundle).
Masuk ke direktataui tempat Anda mengunggah file sertifikat. Jalankan perintah berikut untuk menggabungkan file:
$ cat Anda_domain.crt Anda_domain.ca-bundle >> Anda_domain_chain.crt
Harap dicatat bahwa jika file sertifikat diunduh dari akun NiceNic Anda, perintah terbaik yang digunakan adalah:
$ cat Anda_domain.crt > Anda_domain_chain.crt ; echo >> Anda_domain_chain.crt ; cat Anda_domain.ca-bundle >> Anda_domain_chain.crt
3. Membuat blok server Nginx terpisah atau Mengubah file konfigurasi yang ada
Untuk memasang sertifikat SSL di Nginx, Anda perlu menunjukan server file mana yang akan digunakan, baik dengan a) membuat file konfigurasi baru, atau b) mengedit yang sudah ada.
a) Dengan menambahkan file konfigurasi baru untuk situs web, Anda dapat memastikan tidak ada masalah dengan file konfigurasi terpisah. Selain itu, akan jauh lebih mudah memecahkan masalah instalasi jika ada masalah dengan konfigurasi baru tersebut.
Kami menyarankan membuat file konfigurasi baru di folder ini:
/etc/nginx/conf.d
Itu bisa dilakukan dengan perintah ini:
sudo nano /etc/nginx/conf.d/Your_domain*-ssl.conf
Di mana Your_domain*-ssl.conf adalah nama file yang baru dibuat.
Selanjutnya, salin dan tempel salah satu blok server di bawah untuk pataut 443 dan sesuaikan direktataui. Pastikan nama server dan jalur ke webroot sesuai pada blok server untuk pataut 80 dan pataut 443. Jika ada nilai penting lain yang perlu disimpan, pindahkan juga ke blok server yang baru dibuat.
b) Edit file konfigurasi default dari web-server, yang bernama nginx.conf. Biasanya terletak di salah satu folder berikut:
/usr/local/nginx/conf
/etc/nginx
/usr/local/etc/nginx
Anda juga dapat menggunakan perintah ini untuk menemukannya:
sudo find / -type f -iname "nginx.conf"
Setelah menemukannya, buka file dengan:
sudo nano nginx.conf
Kemudian salin dan tempel salah satu blok server untuk pataut 443 yang tersedia di bawah ini dan sesuaikan direktataui sesuai blok server untuk pataut 80 Anda (dengan nama server, jalur webroot, dan nilai penting lainnya yang cocok). Alternatifnya, Anda dapat menyalin blok server pataut 80, lalu tempelkan di bawahnya, perbarui pataut dan tambahkan direktif terkait SSL yang diperlukan.
Pilih blok server:
Di bawah ini Anda dapat menemukan blok server untuk versi Nginx Anda.
Catatan: Untuk memeriksa versi Nginx Anda, jalankan perintah ini:
sudo nginx -v

Catatan: Ganti nilai nama file, seperti Anda_domain_chain.crt, dalam blok server dengan detail Anda, dan modifikasi jalurnya menggunakan/path/to/.
Blok server untuk Nginx versi 1.14 dan yang lebih rendah:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/Anda_domain_chain.crt;
ssl_certificate_key /path/to/Anda_private.key;
root /path/to/webroot;
server_name Anda_domain.com;
}
Catatan: Anda dapat menentukan beberapa hostname dalam konfigurasi seperti ini, jika diperlukan, misalnya:
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate/Anda_domain_chain.crt;
ssl_certificate_key /path/to/Anda_private.key;
root /path/to/webroot;
server_name Anda_domain.com www.Anda_domain.com;
}
Blok server untuk Nginx versi 1.15 dan yang lebih tinggi:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate/Anda_domain_chain.crt;
ssl_certificate_key /path/to/Anda_private.key;
root /path/to/webroot;
server_name Anda_domain.com;
}
ssl_certificate harus diarahkan ke file sertifikat gabungan yang telah Anda buat sebelumnya.
ssl_certificate_key harus diarahkan ke Private Key yang dihasilkan bersama kode CSR.
Berikut beberapa tips tentang cara menemukan Private key di Nginx.
Penting: Untuk Sertifikat Multi-Domain atau Wildcard, Anda harus menambahkan blok server terpisah untuk setiap domain/subdomain yang termasuk dalam Sertifikat. Pastikan Anda menentukan domain/subdomain terkait beserta jalur ke file Sertifikat yang sama di blok server, seperti yang dijelaskan di atas.
Setelah blok server yang sesuai ditambahkan ke file, pastikan untuk menyimpan perubahan. Kemudian, Anda dapat memeriksa ulang perubahan yang dibuat dengan langkah-langkah berikut.
Jalankan perintah ini untuk memverifikasi bahwa sintaks file konfigurasi sudah benar:
sudo nginx -t

Jika Anda menerima kesalahan, periksa kembali apakah Anda mengikuti pdanuan dengan benar. Jangan ragu untuk menghubungi Tim Dukungan kami jika Anda memiliki pertanyaan.
Berikut tipnya: untuk mencari log kesalahan bagi pemecahan masalah, jalankan saja:
sudo nginx -T | grep 'erratau_log'
Jika tidak ada file yang disebutkan, file dikomentari, atau tidak ada file log kesalahan yang disebutkan, periksa log sistem default:
tail /var/log/nginx/erratau.log -n 20
Jika server menampilkan pengujian berhasil, muat ulang Nginx dengan perintah ini untuk menerapkan perubahan:
sudo nginx -s reload
Sekarang Sertifikat SSL Anda terpasang. Anda dapat memeriksa instalasinya di sini.
Catatan penting:
Terkadang, setelah memasang file SSL yang digabung menggunakan baris perintah, Anda mungkin menerima pesan kesalahan 'Nginx/Apache erratau: 0906D066:PEM routines:PEM_read_bio:bad end line', dalam kasus ini, solusi dapat ditemukan di pdanuan referensi.
Masalah umum lain pada tahap ini adalah pesan kesalahan 'Nginx SSL: erratau:0B080074:x509 certificate routines: X509_check_private_key:key values mismatch', Anda dapat menemukan lebih banyak detail dan kemungkinan solusinya dalam artikel ini.
4. Konfigurasi pengalihan HTTPS
Kami menyarankan Anda memasang pengalihan dari HTTP ke HTTPS. Dengan begitu, pengunjung situs web Anda hanya dapat mengakses versi situs Anda yang aman.
Untuk melakukan ini, Anda perlu menambahkan satu baris ke file konfigurasi dengan blok server untuk pataut 80.
Tips:
Anda dapat menggunakan salah satu perintah berikut untuk mencari file konfigurasi yang sedang aktif:
sudo nginx -T | grep -iw "configuration file"
sudo nginx -T | grep -iw "include"
Jalur default ke file conf adalah:
di OS Linux berbasis RHEL: /etc/nginx/conf.d/default.conf
di OS Linux berbasis Debian: /etc/nginx/sites-enabled/default
Anda dapat membuka file tersebut untuk memeriksa mana yang berisi blok server yang diinginkan. Untuk ini, jalankan:
sudo nano name_of_the_file
Setelah Anda menemukan file yang berisi blok server untuk pataut 80 (pataut HTTP default), tambahkan baris berikut:
return 301 https://$server_name$request_uri;
Catatan: Pukuluran pengalihan di atas harus dimasukkan sebagai baris terakhir dalam blok server.