Dalam tutorial ini, kami akan menunjukkan cara mengkonfigurasi Nginx dengan SSL di server Linux Anda. Bagi Anda yang belum tahu, Transport Layer Security (TLS) dan Secure Socket Layer ( SSL) menyediakan metode mudah untuk mengenkripsi koneksi antara pengguna akhir dan server web. SSL menggunakan sistem otoritas sertifikat untuk memberikan verifikasi identitas guna mencegah situs web mengklaim sebagai organisasi atau situs web lain. Tutorial ini menunjukkan cara menyiapkan keamanan SSL yang kuat di server web Nginx.
Artikel ini mengasumsikan Anda memiliki setidaknya pengetahuan dasar tentang Linux, tahu cara menggunakan shell, dan yang terpenting, Anda meng-host situs Anda di VPS Anda sendiri. Instalasi cukup sederhana dan mengasumsikan Anda sedang berjalan di akun root, jika tidak, Anda mungkin perlu menambahkan 'sudo
' ke perintah untuk mendapatkan hak akses root. Saya akan menunjukkan kepada Anda melalui langkah-demi-langkah mengkonfigurasi Nginx dengan SSL di Linux Anda.
Konfigurasi Nginx Dengan SSL
Diperlukan:
- Dengan asumsi Anda telah menginstal server web Nginx.
- Saya menggunakan Namecheap sebagai registrar, dan mereka menjual kembali Sertifikat SSL dari sejumlah perusahaan lain, termasuk Comodo.
Langkah 1. Buat direktori
mkdir -p /etc/nginx/ssl/idroot.us
Langkah 2. Membuat Kunci SSL dan CSR Anda
Sebelum membeli sertifikat, Anda perlu membuat kunci pribadi, dan file CSR (Permintaan Penandatanganan Sertifikat). Anda akan dimintai konten File CSR saat memesan sertifikat. Untuk Nama Umum, masukkan nama domain yang Anda maksudkan tanpa 'www' yaitu idroot.us. Jika itu SSL Wildcard, gunakan *.idroot.us.
openssl req -nodes -newkey rsa:2048 -keyout idroot.us.key -out idroot.us.csr
Langkah 3. Buat bundel sertifikat
Setelah membeli sertifikat, Anda akhirnya akan mendapatkan email dengan Sertifikat SSL Anda. Ini berisi file zip dengan berikut:
- AddTrustExternalCARoot.crt
- COMODORSAAddTrustCA.crt
- COMODORSADomainValidationSecureServerCA.crt
- idroot_net.crt
cat idroot_net.crt AddTrustExternalCARoot.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt >> ssl-bundle.crt
Setelah membuat bundel sertifikat, Anda dapat memindahkannya ke direktori SSL Nginx Anda.
mv ssl-bundle.crt /etc/nginx/ssl/idroot.us/
Langkah 4. Konfigurasikan Sertifikat untuk Nginx
Buka konfigurasi virtual host Nginx, menggunakan SSL dengan Nginx memerlukan modifikasi pada mendengarkan direktif dan tiga direktif terkait SSL seperti yang ditunjukkan pada contoh berikut:
nano /etc/nginx/conf.d/ssl.conf
server { listen 443 ssl spdy; server_name www.idroot.us idroot.us; root /var/www/idroot.us/public_html; index index.php index.html index.htm; server_tokens off; #SSL CONF ssl on; ssl_certificate /etc/nginx/ssl/idroot.us/ssl-bundle.crt; ssl_certificate_key /etc/nginx/ssl/idroot.us/idroid.us.key; #SSL ssl_session_cache shared:SSL:20m; ssl_session_timeout 10m; ssl_prefer_server_ciphers On; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s; # permalink location / { try_files $uri $uri/ /index.php?$args; } # php-script handler location ~ \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; root /var/www/idroot.us/public_html; fastcgi_param SCRIPT_FILENAME /var/www/idroot.us/public_html$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~ /\.ht { deny all; } }
Langkah 5. Redirect HTTP Virtual Host ke HTTPS
return 301 https://idroot.us$request_uri;
Langkah 6. Mulai ulang/muat ulang Nginx.
/etc/init.d/nginx restart
Selamat! Anda telah berhasil menginstal Nginx dengan SSL. Terima kasih telah menggunakan tutorial ini untuk menginstal dan mengonfigurasi Nginx dengan SSL pada sistem Linux. Untuk bantuan tambahan atau informasi berguna, kami sarankan Anda memeriksa yang resmi Situs web Nginx.