All Products
Search
Document Center

Certificate Management Service:Menerapkan sertifikat SSL pada server Nginx (Windows)

Last Updated:May 16, 2026

Mengirimkan data melalui HTTP yang tidak terenkripsi mengeksposnya terhadap risiko keamanan seperti pengungkapan informasi dan perubahan konten. Browser juga dapat menandai situs Anda sebagai "Tidak Aman", yang mengurangi kepercayaan pengguna. Dengan menerapkan sertifikat SSL pada server Nginx Anda di Windows, Anda mengaktifkan enkripsi HTTPS untuk melindungi kerahasiaan dan integritas data selama transmisi serta memperkuat kredibilitas situs web Anda. Topik ini menjelaskan cara menerapkan sertifikat SSL pada server Nginx yang berjalan di Windows dan memverifikasi bahwa HTTPS berfungsi dengan benar.

Requirements

Sebelum memulai, pastikan persyaratan berikut terpenuhi:

  • Certificate Status: Anda memiliki sertifikat SSL yang dikeluarkan oleh Otoritas Sertifikat (CA) tepercaya. Jika sertifikat Anda akan kedaluwarsa atau sudah kedaluwarsa, Anda harus memperbaruinya terlebih dahulu.

  • Domain Name Matching: Pastikan sertifikat mencakup semua nama domain yang ingin Anda lindungi. Jika Anda perlu menambahkan atau mengganti nama domain, Anda dapat membeli sertifikat berbayar atau menambahkan dan mengganti nama domain.

    • Nama domain eksak: Sertifikat nama domain eksak hanya berlaku untuk nama domain yang ditentukan.

      • Sertifikat untuk example.com hanya berlaku untuk example.com.

      • Sertifikat untuk www.example.com hanya berlaku untuk www.example.com.

    • Nama domain wildcard: Sertifikat nama domain wildcard hanya berlaku untuk subdomain tingkat pertama.

      • Sertifikat untuk *.example.com berlaku untuk subdomain tingkat pertama seperti www.example.com dan a.example.com.

      • Sertifikat untuk *.example.com tidak berlaku untuk domain root example.com atau subdomain multi-level seperti a.b.example.com.

    Catatan

    Untuk mencocokkan subdomain multi-level, bidang Bound Domains harus mencantumkan nama domain spesifik (misalnya, a.b.example.com) atau nama domain wildcard yang sesuai (misalnya, *.b.example.com).

  • Server permissions: Anda harus menggunakan akun Administrator atau akun dengan hak istimewa administrator.

  • DNS Resolution: Nama domain di-resolve ke Alamat IP publik server.

  • Prerequisites: Topik ini menggunakan Windows Server 2025 dan Nginx 1.28.0 sebagai contoh. Direktori instalasi Nginx contoh adalah D:\nginx-1.28.0.

    Catatan

    Langkah-langkah penerapan dapat berbeda tergantung pada versi sistem operasi atau perangkat lunak server web Anda.

Procedure

Step 1: Prepare the SSL certificate

  1. Buka halaman SSL Certificates Service. Pada kolom Actions untuk sertifikat Anda, klik More untuk membuka halaman detail sertifikat. Pada tab Download, unduh sertifikat untuk Server Type Nginx.

  2. Ekstrak paket sertifikat yang telah diunduh.

    • Jika paket berisi file sertifikat (.pem) dan file kunci privat (.key), simpan kedua file tersebut secara aman. Anda memerlukannya untuk penerapan.

    • Jika paket hanya berisi file sertifikat (.pem) tanpa file kunci privat (.key), Anda harus menerapkan sertifikat bersama dengan file kunci privat yang telah Anda simpan secara lokal.

      Catatan

      Jika Anda membuat file permintaan penandatanganan sertifikat (CSR) menggunakan tool seperti OpenSSL atau Keytool saat mengajukan sertifikat, file kunci privat hanya disimpan di mesin lokal Anda dan paket yang diunduh tidak berisi file kunci privat tersebut. Jika kunci privat hilang, sertifikat menjadi tidak dapat digunakan. Anda harus membeli sertifikat berbayar dan membuat CSR serta kunci privat baru.

  3. Unggah file sertifikat dan kunci privat yang telah diekstrak ke server Anda dan simpan di direktori yang aman. Jalur contoh yang digunakan dalam topik ini adalah D:\cert.

    Catatan

    Langkah-langkah berikut menggunakan Instance ECS Alibaba Cloud sebagai contoh. Untuk jenis server lain, rujuk dokumentasi resminya.

    1. Buka ECS console - Instances. Di pojok kiri atas, pilih wilayah dan kelompok sumber daya untuk resource target.

    2. Buka halaman detail instans. Klik Connect dan pilih Workbench. Ikuti petunjuk di layar untuk login ke server.

    3. Klik menu Start di pojok kiri bawah desktop server, lalu cari dan buka This PC, Computer, atau File Explorer.

    4. Di bawah Redirected drives and folders, klik ganda workbench on ***. Seret file sertifikat dari mesin lokal Anda ke direktori ini, lalu klik kanan dan pilih Refresh untuk menyegarkan folder.

      image

    5. Salin file ke direktori D:\cert.

      Penting

      Saat Anda terhubung ulang ke atau keluar dari instans, Workbench secara otomatis menghapus semua file yang diunggah dari direktori Redirected drives and folders untuk menghemat ruang. Direktori ini hanya dimaksudkan untuk transfer file. Jangan menyimpan file di sini secara permanen.

Step 2: Configure the system and network

  1. Buka port 443 di security group.

    Penting

    Jika server Anda diterapkan di platform cloud, pastikan security group-nya mengizinkan lalu lintas masuk pada port TCP 443. Jika tidak, layanan tidak dapat diakses dari internet. Operasi berikut menggunakan Instance ECS Alibaba Cloud sebagai contoh. Untuk platform cloud lain, lihat dokumentasi resminya.

    1. Buka halaman ECS Instances, pilih wilayah tempat Instance ECS target berada, lalu klik nama instans untuk membuka halaman detail.

    2. Klik Security Groups > Inbound Rules dan pastikan ada aturan dengan Action diatur ke Allow, Protocol Type diatur ke TCP, Port Range diatur ke HTTPS(443), dan Authorization Object diatur ke Anywhere (0.0.0.0/0).

    3. Jika aturan tersebut tidak ada, tambahkan satu aturan ke security group target. Untuk informasi lebih lanjut, lihat Add a security group rule.

  2. Buka port 443 di firewall server.

    1. Login ke server Windows Anda, klik menu Start, lalu buka Control Panel.

    2. Buka System and Security > Windows Defender Firewall > Check firewall status.

    3. Jika firewall dimatikan seperti yang ditunjukkan pada gambar berikut, tidak diperlukan tindakan lebih lanjut.image

    4. Jika firewall diaktifkan, ikuti langkah-langkah berikut untuk mengizinkan traffic HTTPS.

      1. Di panel navigasi kiri, klik Advanced settings > Inbound Rules dan periksa apakah ada aturan masuk dengan Protocol TCP, Local Port 443, dan Action Block.

      2. Jika aturan tersebut ada, klik kanan aturan tersebut, pilih Properties, lalu pada tab General, ubah aksi menjadi Allow the connection. Kemudian, klik Apply.

Step 3: Deploy the certificate on Nginx

  1. Buka file konfigurasi Nginx (misalnya, D:\nginx-1.28.0\conf\nginx.conf) dan konfigurasikan sertifikat SSL serta kunci privat.

    1. Tambahkan blok server yang mendengarkan port 443.

      Salin blok server yang ada yang mendengarkan port 80 untuk membuat blok baru, ubah port pendengarnya menjadi listen 443 ssl, dan tambahkan direktif sertifikat SSL (ssl_certificate dan ssl_certificate_key). Biarkan konfigurasi lainnya tetap sama.

      # Blok server asli yang mendengarkan port 80
      server {
          listen 80;
          server_name yourdomain.com www.yourdomain.com;
      
          # Konfigurasi lainnya
          location / {
              proxy_pass http://127.0.0.1:8000;
          }
      }
      
      # Duplikasi blok server yang ada untuk port 80 dan tambahkan sebagai blok server baru.
      server {
          # Ubah 'listen 80' menjadi 'listen 443 ssl'
          listen 443 ssl;
          # Pertahankan server_name asli. Anda dapat menambahkan lebih banyak nama domain yang didukung oleh sertifikat.
          server_name yourdomain.com www.yourdomain.com;
      
          # ======================= Awal Konfigurasi Sertifikat =======================
          # Tentukan file sertifikat (sertifikat perantara dapat digabungkan ke dalam file .pem ini). Ganti jalur berikut dengan jalur mutlak ke file sertifikat Anda.
          ssl_certificate D:\\cert\\example.com.pem;
          # Tentukan file kunci privat. Ganti jalur berikut dengan jalur mutlak ke file kunci privat Anda.
          ssl_certificate_key D:\\cert\\example.com.key;
          # Konfigurasikan cache sesi SSL untuk meningkatkan kinerja.
          ssl_session_cache shared:SSL:1m;
          # Atur timeout sesi SSL.
          ssl_session_timeout 5m;
          # Sesuaikan protokol TLS dan paket sandi (Ini adalah contoh. Sesuaikan sesuai kebutuhan.)
          ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
          # Tentukan versi protokol TLS yang diizinkan. Versi TLS yang lebih tinggi memberikan keamanan lebih baik tetapi mungkin memiliki kompatibilitas browser yang lebih rendah.
          ssl_protocols TLSv1.2 TLSv1.3;
          # Utamakan paket sandi server.
          ssl_prefer_server_ciphers on;
          # ======================= Akhir Konfigurasi Sertifikat =======================
      
          # Konfigurasi lainnya
      }
    2. Opsional: Alihkan permintaan HTTP ke HTTPS secara otomatis. Tambahkan direktif rewrite ke blok server yang ada yang mendengarkan port 80.

      server {
          listen 80;
          # Masukkan nama domain yang di-bind ke sertifikat.
          server_name <YOURDOMAIN>;
          # Alihkan semua permintaan HTTP ke HTTPS dengan kode status 301.
          return 301 https://$host$request_uri;
      }
    3. Jalankan perintah berikut untuk memvalidasi file konfigurasi. Jika output berisi syntax is ok dan test is successful, konfigurasi valid. Jika tidak, perbaiki masalah berdasarkan pesan error dan uji ulang hingga validasi berhasil.

      .\nginx.exe -t
  2. Muat ulang layanan Nginx.

    Buka Command Prompt Windows, navigasi ke direktori instalasi Nginx, lalu jalankan perintah berikut.

    .\nginx.exe -s reload 

Step 4: Verify the deployment

  1. Akses nama domain Anda melalui HTTPS. Contoh: https://example.com. Ganti example.com dengan nama domain aktual Anda.

  2. Jika ikon gembok muncul di bilah alamat browser, sertifikat telah berhasil diterapkan. Jika terjadi error akses atau ikon gembok tidak muncul, bersihkan cache browser Anda atau coba lagi dalam mode penyamaran atau privat.

    image

    Mulai Chrome 117, ikon image di bilah alamat telah diganti dengan ikon image baru. Klik ikon ini untuk melihat informasi keamanan gembok.

Catatan

Jika masalah tetap berlanjut, lihat bagian FAQ untuk troubleshooting.

Deploying to production

Saat menerapkan aplikasi di lingkungan produksi, ikuti praktik terbaik berikut untuk meningkatkan keamanan, stabilitas, dan kemudahan pemeliharaan:

  • Jalankan aplikasi sebagai pengguna non-administrator:

    Buat pengguna sistem khusus dengan hak istimewa rendah untuk aplikasi. Jangan menjalankan aplikasi menggunakan akun yang memiliki izin administrator.

    Catatan

    Kami merekomendasikan Anda menggunakan konfigurasi SSL tingkat gerbang. Ini melibatkan penerapan sertifikat pada reverse proxy, seperti instans SLB atau Nginx.

  • Eksternalisasi manajemen kredensial:

    Jangan hard-code informasi sensitif, seperti kata sandi, dalam kode atau file konfigurasi Anda. Gunakan Variabel lingkungan, vault, atau Layanan Manajemen Kunci yang disediakan oleh penyedia cloud Anda untuk menyuntikkan kredensial.

  • Paksa pengalihan HTTP ke HTTPS:

    Pastikan semua traffic yang mengakses website Anda melalui HTTP dialihkan secara otomatis ke HTTPS. Hal ini membantu mencegah serangan man-in-the-middle (MITM).

  • Konfigurasikan protokol TLS modern:

    Dalam konfigurasi server Anda, nonaktifkan protokol usang dan tidak aman, seperti SSLv3, TLS 1.0, dan TLS 1.1. Aktifkan hanya TLS 1.2 dan TLS 1.3.

  • Pantau sertifikat dan otomatiskan perpanjangan:

    Setelah sertifikat diterapkan, kami merekomendasikan Anda mengaktifkan pemantauan nama domain. Alibaba Cloud secara otomatis memeriksa periode validitas sertifikat dan mengirimkan pengingat sebelum sertifikat kedaluwarsa. Hal ini membantu Anda memperbarui sertifikat tepat waktu untuk mencegah gangguan layanan. Untuk informasi lebih lanjut, lihat Purchase and enable public domain name monitoring.

FAQ

Certificate not working or HTTPS inaccessible

Penyebab umum meliputi:

  • Port 443 tidak dibuka di security group atau firewall server. Untuk informasi lebih lanjut, lihat Configure the system and network.

  • Bound Domains sertifikat tidak mencakup nama domain yang Anda akses. Untuk informasi lebih lanjut, lihat Domain name matching.

  • Layanan Nginx tidak dimuat ulang setelah file konfigurasi dimodifikasi. Untuk informasi lebih lanjut, lihat Reload the Nginx service.

  • File sertifikat tidak diganti dengan benar, atau konfigurasi Nginx tidak mengarah ke jalur sertifikat yang benar. Verifikasi bahwa file konfigurasi dan file sertifikat terkini dan valid.

  • Nama domain diintegrasikan dengan layanan cloud seperti CDN, SLB, atau WAF, tetapi sertifikat tidak diinstal pada layanan yang sesuai. Untuk informasi lebih lanjut, lihat Certificate deployment location when traffic passes through multiple cloud services.

  • Nama domain di-resolve ke beberapa server, tetapi sertifikat hanya diinstal pada sebagian server. Anda harus menginstal sertifikat pada setiap server.

How do I update an SSL certificate in Nginx?

Pertama, backup file sertifikat yang ada (.pem dan .key) di server Anda. Kemudian, login ke konsol Certificate Management Service, unduh file sertifikat baru (.pem dan .key), lalu unggah ke server untuk menimpa file lama. Pastikan jalur dan nama file tetap sama. Terakhir, muat ulang layanan Nginx untuk menerapkan sertifikat baru.

How do I disable TLSv1.0 and TLSv1.1 in Nginx?

Dalam blok server Nginx yang mendengarkan port 443, atur ssl_protocols agar hanya mencakup TLSv1.2 dan TLSv1.3: ssl_protocols TLSv1.2 TLSv1.3;. Hal ini menonaktifkan protokol TLSv1.0 dan TLSv1.1 yang tidak aman. Setelah memperbarui konfigurasi, jalankan .\nginx.exe -s reload untuk menerapkan perubahan.

After running nginx -s reload, Nginx fails to start or the bind() to 0.0.0.0:443 failed error appears in the logs.

Ini adalah konflik port. Jalankan netstat -ano | findstr ":443" untuk memeriksa apakah port 443 sedang digunakan, lalu hentikan layanan yang menggunakannya.

Troubleshooting the missing lock icon or "mixed content" warnings

Hal ini terjadi ketika halaman memuat resource seperti gambar, CSS, atau JavaScript melalui HTTP. Periksa kode sumber halaman dan ubah semua tautan http:// menjadi https://, atau gunakan jalur relatif seperti /images/logo.png.