Konfigurasikan Nginx dengan sertifikat SSL/TLS di CentOS 8

Dalam tutorial ini, kita akan belajar cara mengkonfigurasi Nginx dengan sertifikat SSL/TLS di CentOS 8. Penggunaan sertifikat SSL/TLS memastikan komunikasi yang aman dan otentik antara server web dan client web.

Konfigurasikan Nginx dengan sertifikat SSL/TLS di CentOS 8

Instal modul Nginx dan SSL/TLS di CentOS 8

Untuk mengonfigurasi server HTTP Nginx untuk menggunakan sertifikat SSL/TLS, Anda harus menginstalnya terlebih dahulu dan modul SSL/TLS. Nginx sebagaimod_ssl paket tersedia di repositori CentOS 8 default dan dapat diinstal dengan menjalankan perintah di bawah ini;

dnf install nginx mod_ssl

Setelah diinstal, mulai dan aktifkan untuk dijalankan pada boot sistem.

systemctl enable --now nginx

Untuk mengizinkan akses eksternal, izinkan Nginx melalui firewall. Ini dapat dilakukan hanya dengan membuka port 80 (HTTP) atau 443 (HTTPS) tergantung pada lalu lintas ke server.

Dalam panduan ini, karena kami mengonfigurasi Nginx ke sertifikat TLS, kami membuka port 443/tcp.

firewall-cmd --add-port=443/tcp --permanent

Anda juga dapat membuka port 80/tcp jika Anda ingin mengalihkan lalu lintas HTTP ke HTTPS.

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

Hasilkan Sertifikat SSL/TLS

Nah, dalam panduan ini, kita akan menggunakan sertifikat SSL/TLS yang ditandatangani sendiri untuk tujuan demonstrasi.

Jika Anda ingin menggunakan sertifikat tepercaya secara komersial, Anda perlu membuat Permintaan Penandatanganan Sertifikat (CSR) dan mengirimkannya ke CA pilihan Anda untuk memesan sertifikat tepercaya.

Bagaimana cara menghasilkan CSR?

Nah, jika Anda memilih untuk menggunakan sertifikat tepercaya secara komersial, Anda dapat membuat CSR dengan menjalankan perintah di bawah ini. Ganti nama kunci dan CSR yang sesuai.

openssl req -new -newkey rsa:4096 -nodes -keyout kifarunix-demo.key -out kifarunix-demo.csr

Anda diminta untuk memberikan perincian berikut;

  • Kode dua huruf negara (C) di mana organisasi Anda berada.
  • Nama Negara Bagian atau Provinsi (S) di mana organisasi Anda berada
  • Nama Lokalitas (misalnya, kota) (L) di mana organisasi Anda berada
  • Nama Organisasi Anda (O).
  • Nama Unit Organisasi Anda (OU).
  • Itu Common Name (CN) (biasanya nama domain yang sepenuhnya memenuhi syarat yang ingin Anda buatkan sertifikatnya. Anda dapat menggunakan wildcard jika menggunakan untuk sub-domain, misalnya *.kifarunix-demo.com.
    • This is the most important detail since it ties the your domain to the certificate to be generated.
  • Alamat kontak email opsional.

Untuk memasukkan detail ini pada command line, gunakan -subjpilihan sebagai berikut. Ganti nilai yang disorot sesuai.

-subj "/C=CN/ST=STATE/L=CITY/O=ORG NAME/OU=Department/CN=DOMAIN_NAME/emailAddress=n[email protected]"

Setelah dibuat, kirimkan konten CSR ke Otoritas Sertifikat yang menandatangani.

Perintah di atas menghasilkan kunci pribadi dan CSR. Simpan kunci pribadi seaman yang diperlukan nanti saat memasang sertifikat.

Perhatikan bahwa Anda juga dapat menggunakan Let’s Encrypt, sertifikat yang gratis secara komersial.

Hasilkan sertifikat SSL/TLS yang Ditandatangani Sendiri

Nah, untuk tujuan demonstrasi, Anda dapat membuat sertifikat yang ditandatangani sendiri sebagai berikut. Ganti nama domain dan detail lokasi yang sesuai.

openssl req -newkey rsa:4096 -nodes -keyout /etc/pki/tls/private/kifarunix-demo.key -x509 -days 365 -out /etc/pki/tls/certs/kifarunix-demo.crt  -subj "/C=US/ST=Oregon/L=Springfield/O=kifarunix-demo/OU=IT/CN=*.kifarunix-demo.com/[email protected]"

Setelah perintah berjalan, Anda harus memiliki sertifikat yang ditandatangani sendiri dan kunci pribadi di bawah /etc/pki/tls/certsdan /etc/pki/tls/privatemasing – masing, jika Anda menggunakan perintah di atas.

Untuk meningkatkan keamanan SSL/TLS dengan memastikan pertukaran kunci kriptografi yang aman, buat parameter kunci Diffie-Hellman (DH).

openssl dhparam -out /etc/pki/tls/certs/dhparam.pem 4096

Menghasilkan parameter DH mungkin membutuhkan waktu.

Untuk mengkonfigurasi Nginx untuk menggunakan parameter DH, ssl_dhparamdirektif digunakan. Anda akan melihat caranya di bagian selanjutnya.

Memasang Sertifikat SSL/TLS di Nginx

Setelah Anda memiliki sertifikat SSL dan kuncinya, Anda sekarang dapat mengonfigurasi Nginx untuk menggunakannya.

Buka file konfigurasi Nginx untuk diedit;

vim /etc/nginx/nginx.conf

Konfigurasi default Nginx TLS telah dimodifikasi untuk menyertakan cipher dari Cipherli.st.

CATATAN: Jika Anda ingin mengarahkan lalu lintas HTTP ke HTTPS, Anda cukup menambahkan baris di bawah ini di bawah bagian konfigurasi HTTP Nginx.

return 301 https://$host$request_uri;

Lihat di bawah tentang bagaimana garis ditambahkan.

Ganti sertifikat dan nama server yang sesuai.

... server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; return 301 https://$host$request_uri;... # Settings for a TLS enabled server. # server { listen 443 ssl http2 default_server; server_name web01.kifarunix-demo.com; # Server FQDN root /usr/share/nginx/html; ssl_protocols TLSv1.3; # Enable TLS v1.3 only ssl_certificate "/etc/pki/tls/certs/kifarunix-demo.crt"; ssl_certificate_key "/etc/pki/tls/private/kifarunix-demo.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers EECDH+AESGCM:EDH+AESGCM; ssl_ecdh_curve secp384r1; ssl_prefer_server_ciphers on; ssl_session_tickets off; resolver 8.8.8.8 valid=300s; resolver_timeout 5s; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; # Add DH parameters ssl_dhparam /etc/pki/tls/certs/dhparam.pem; # # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } }

Simpan dan keluar dari file konfigurasi.

Jika Anda menggunakan sertifikat dari CA, Anda akan diberikan dua file sertifikat, Intermediate certificatedanserver certificate. Untuk menggunakannya, Anda harus menyatukannya dalam satu file sertifikat.

cat server.crt intermediate.crt >> /etc/pki/tls/certs/ser-int-cert.crt

Ganti nama dan jalur yang sesuai.

Verifikasi konfigurasi Nginx untuk error sintaks.

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Mulai ulang Nginx

systemctl restart nginx

Akses Nginx dari Browser menggunakan HTTPS

Arahkan ke browser dan coba akses Nginx menggunakan HTTPS untuk memeriksa apakah semuanya baik-baik saja menggunakan alamat, https://server-IP-or-FQDN.

Jika menggunakan SSL yang ditandatangani sendiri. terima peringatan “Koneksi Anda tidak pribadi” dan lanjutkan. Anda harus mendarat di halaman pengujian Nginx.

Itu semuanya. Anda telah berhasil menginstal sertifikat SSL dan si
tus Anda sekarang dikonfigurasi untuk menggunakan sertifikat SSL/TLS. Itu menandai akhir dari panduan kami tentang cara mengonfigurasi Nginx dengan sertifikat SSL/TLS di CentOS 8.

Tutorial Terkait

Konfigurasikan Guacamole SSL/TLS dengan Nginx Reverse Proxy

Konfigurasikan HAProxy Load Balancer dengan SSL di Ubuntu 18.04/Debian 10/9

Cara Membuat Sertifikat SSL Tepercaya Secara Lokal dengan mkcert di Ubuntu 18.04

Pantau Kedaluwarsa Sertifikat SSL/TLS dengan Nagios