import { Tabs, Callout } from 'nextra/components'
import { Server, Globe, Shield } from 'lucide-react'

# Konfigurasi Web Server

Untuk mengaktifkan HTTPS pada layanan internal Anda, Anda perlu mengonfigurasi web server agar menggunakan sertifikat yang diterbitkan oleh TrustLab.

<Callout type="info" emoji={<Shield className="w-5 h-5" />}>
  **Prasyarat:** Pastikan Anda telah mengunduh **PEM Bundle** (untuk Linux) atau **PFX** (untuk Windows) seperti yang dijelaskan dalam [Panduan Unduh](/id/guide/certificates/download-install).
</Callout>

## Contoh Konfigurasi

Pilih lingkungan web server Anda di bawah ini:

<Tabs items={['Nginx', 'Apache (httpd)', 'IIS (Windows)']}>
  <Tabs.Tab>
    ### Pengaturan Nginx
    File Target: `/etc/nginx/sites-available/default` atau `internal.app.conf`
    
    ```nginx
    server {
        listen 80;
        server_name internal.app;
        return 301 https://$host$request_uri;
    }

    server {
        listen 443 ssl http2;
        server_name internal.app;

        # SSL Configuration
        ssl_certificate     /etc/ssl/trustlab/internal.app.crt;
        ssl_certificate_key /etc/ssl/trustlab/internal.app.key;

        # Recommended Security
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
    }
    ```
  </Tabs.Tab>
  <Tabs.Tab>
    ### Pengaturan Apache / HTTPD
    File Target: `/etc/httpd/conf.d/ssl.conf` atau file VHost.

    ```apache
    <VirtualHost *:443>
        ServerName internal.app
        DocumentRoot /var/www/html/internal

        SSLEngine on
        SSLCertificateFile      "/path/to/internal.app.crt"
        SSLCertificateKeyFile   "/path/to/internal.app.key"
        
        # Best Practice
        SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    </VirtualHost>
    ```
    5. Pergi ke **Sites**, pilih situs Anda, dan klik **Bindings...**.
    6. Tambahkan binding `https` dan pilih sertifikat TrustLab yang baru diimpor.
  </Tabs.Tab>
</Tabs>

---

## Verifikasi Konfigurasi

Gunakan perintah `curl` dari terminal untuk memastikan sertifikat terdeteksi dengan benar:

```bash
curl -vI https://internal.yourcompany.local
```

Perhatikan baris `server certificate verification OK`. Jika muncul error, pastikan Anda telah menginstal Root CA di perangkat yang menjalankan perintah tersebut.

> [!NOTE]
> Sangat disarankan untuk selalu menggunakan file **BUNDLE/COMBINED** (Sertifikat + Intermediate) untuk menghindari masalah rantai sertifikat (Chain Error) di beberapa browser mobile.
