🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)
🕵️ SicherheitslückenHak5: Hackers Just Poisoned the Rust Supply Chain | Threat Wire(01.09.2026 um 14:00 Uhr)
🕵️ SicherheitslückenHak5: Hackers Found a Way Into Humanoid Robots | Threat Wire(04.09.2026 um 15:04 Uhr)
🔧 AI Nachrichten Bits und so #1021 (Passwort für Laufwerk)(31.08.2026 um 22:15 Uhr)
🔧 AI Nachrichten Bits und so #1022 (Wie Weißbier)(06.09.2026 um 20:39 Uhr)
🍏 iOS / Mac OSHue-App 6.0 ist da: das sind die Neuerungen(07.09.2026 um 17:21 Uhr)

🔧 Programmierung 🕛 kürzlich 6 Min Lesezeit
0

Reverse Proxy Setup + SSL Self-Sign (Root CA + Wildcard)

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

Pada postingan ini saya akan membahas bagaimana membangun Reverse Proxy Nginx dengan SSL Internal (Self-Signed PKI) tanpa menggunakan domain publik maupun IP publik.



Studi kasus ini cocok untuk:




  • Rumah Sakit

  • Kantor

  • Sekolah

  • Lab

  • Infrastruktur Internal

  • Homelab



Target akhirnya adalah semua aplikasi internal dapat diakses menggunakan HTTPS tanpa muncul peringatan ("Not Secure") di browser.









Topologi






CODE
                     Client


Technitium DNS (10.10.10.75)

┌───────────────┴───────────────┐
│ │
app.domainku.internal portal.domainku.internal
│ │
└───────────────┬───────────────┘

Nginx Reverse Proxy (10.10.10.79)
HTTPS (Wildcard SSL)

┌───────────┴───────────┐
▼ ▼
App Server Portal Server
10.10.10.1 10.10.10.2






Target:

Browser Secure -> tanpa warning.







Kenapa Tidak Menggunakan Let's Encrypt?



Karena pada studi kasus ini:




  • Tidak memiliki IP Publik

  • Tidak memiliki Domain Publik

  • Semua server berada di jaringan internal



Sehingga solusi terbaik adalah membuat Certificate Authority (CA) sendiri.







Konsep PKI Sederhana



Banyak orang langsung membuat sertifikat seperti ini:




CODE
Server Certificate

Signed by

Server itu sendiri






Metode tersebut disebut Self-Signed Certificate. Masalahnya browser tidak akan mempercayainya. Metode yang akan kita gunakan adalah:




CODE
Root CA

└───────────────┐

Wildcard Certificate


Nginx






Browser hanya perlu percaya kepada Root CA, kemudian seluruh sertifikat yang diterbitkan Root CA tersebut akan dianggap valid.









Tahap 1 — Membuat Root CA






Apa itu Root CA?



Root CA adalah induk kepercayaan.



Browser tidak perlu percaya langsung kepada website.



Browser cukup percaya kepada:




CODE
Domainku Internal Root CA






Kemudian seluruh sertifikat yang diterbitkan Root CA tersebut akan dipercaya.









Membuat Folder PKI






CODE
sudo mkdir -p /root/pki
cd /root/pki












Membuat Private Key Root CA






CODE
openssl genrsa -out ca.key 4096






Hasil:




CODE
ca.key







⚠️ PENTING



File ca.key adalah aset paling penting.



Jangan dibagikan.



Jangan dihapus.



Backup dengan aman.










Membuat Sertifikat Root CA






CODE
openssl req \
-x509 \
-new \
-key ca.key \
-sha256 \
-days 3650 \
-out ca.crt






Keterangan:




















Parameter Penjelasan
-x509 Membuat Certificate Authority
-days 3650 Berlaku selama 10 tahun


Contoh isian:




CODE
Country Name: ID
State: Jawa Barat
Locality: Cirebon
Organization: Domainku Internal
Common Name: Domainku Internal Root CA






Hasil:




CODE
ca.crt






Sekarang kita memiliki:




CODE
ca.key
ca.crt












Tahap 2 — Membuat Wildcard Certificate



Tujuan kita adalah membuat satu sertifikat untuk seluruh subdomain.




CODE
*.domainku.internal






Sehingga dapat digunakan untuk:




CODE
app.domainku.internal
portal.domainku.internal
grafana.domainku.internal
git.domainku.internal
monitoring.domainku.internal












Membuat Private Key






CODE
openssl genrsa -out wildcard.key 4096






Hasil:




CODE
wildcard.key












Membuat File CSR






CODE
nano wildcard.cnf






Isi:




CODE
[req]
default_bits = 4096
prompt = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext

[dn]
C=ID
ST=Jawa Barat
L=Cirebon
O=Domainku Internal
CN=*.domainku.internal

[req_ext]
subjectAltName=@alt_names

[alt_names]
DNS.1=*.domainku.internal
DNS.2=domainku.internal












Generate CSR






CODE
openssl req \
-new \
-key wildcard.key \
-out wildcard.csr \
-config wildcard.cnf






CSR (Certificate Signing Request) adalah permintaan kepada Root CA untuk menerbitkan sertifikat.









Tahap 3 — Menandatangani Wildcard



Buat file:




CODE
nano v3.ext






Isi:




CODE
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature,keyEncipherment
extendedKeyUsage=serverAuth
subjectAltName=@alt_names

[alt_names]
DNS.1=*.domainku.internal
DNS.2=domainku.internal









Sign menggunakan Root CA:




CODE
openssl x509 \
-req \
-in wildcard.csr \
-CA ca.crt \
-CAkey ca.key \
-CAcreateserial \
-out wildcard.crt \
-days 1825 \
-sha256 \
-extfile v3.ext






Keterangan:




CODE
1825 hari = 5 tahun






Sekarang kita memiliki:




CODE
wildcard.crt
wildcard.key






Hubungannya menjadi:




CODE
ca.crt


menandatangani


wildcard.crt












Tahap 4 — Membuat Full Chain



Gabungkan sertifikat:




CODE
cat wildcard.crt ca.crt > fullchain.crt






Hasil:




CODE
fullchain.crt












Tahap 5 — Install ke Nginx






CODE
sudo mkdir -p /etc/nginx/ssl






Copy file:




CODE
sudo cp wildcard.key /etc/nginx/ssl/
sudo cp fullchain.crt /etc/nginx/ssl/






Atur permission:




CODE
sudo chown root:root /etc/nginx/ssl/*
sudo chmod 600 /etc/nginx/ssl/wildcard.key
sudo chmod 644 /etc/nginx/ssl/fullchain.crt












Tahap 6 — Konfigurasi Reverse Proxy






app.domainku.internal






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

ssl_certificate /etc/nginx/ssl/fullchain.crt;
ssl_certificate_key /etc/nginx/ssl/wildcard.key;

location / {
proxy_pass http://10.10.10.1;

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}












portal.domainku.internal






CODE
server {
listen 443 ssl http2;
server_name portal.domainku.internal;

ssl_certificate /etc/nginx/ssl/fullchain.crt;
ssl_certificate_key /etc/nginx/ssl/wildcard.key;

location / {
proxy_pass http://10.10.10.2;

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}






Aktifkan site:




CODE
sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/portal /etc/nginx/sites-enabled/






Test konfigurasi:




CODE
sudo nginx -t






Reload:




CODE
sudo systemctl reload nginx












Tahap 7 — Konfigurasi DNS



Pada Technitium DNS buat record:




CODE
app        A     10.10.10.79
portal A 10.10.10.79






Sehingga:




CODE
app.domainku.internal
→ 10.10.10.79

portal.domainku.internal
→ 10.10.10.79












Tahap 8 — Agar Browser Percaya



Langkah ini hanya dilakukan sekali untuk setiap komputer client.






Windows




  1. Jalankan:




CODE
certlm.msc







  1. Masuk ke:




CODE
Trusted Root Certification Authorities







  1. Klik:




CODE
Import







  1. Pilih:




CODE
ca.crt






Selesai.









Ubuntu / Debian






CODE
sudo cp ca.crt /usr/local/share/ca-certificates/domainku-root-ca.crt
sudo update-ca-certificates












Arch Linux






CODE
sudo cp ca.crt /etc/ca-certificates/trust-source/anchors/domainku-root-ca.crt
sudo trust extract-compat












Tahap 9 — Verifikasi



Buka:




CODE
https://app.domainku.internal






atau




CODE
https://portal.domainku.internal






Browser akan melakukan proses berikut:




CODE
Website

mengirim wildcard certificate


Ditandatangani oleh Root CA


Browser mempercayai Root CA


🔒 Secure












Cara Melihat Masa Berlaku Sertifikat






Wildcard






CODE
openssl x509 -in wildcard.crt -noout -dates






Output:




CODE
notBefore=...
notAfter=...












Root CA






CODE
openssl x509 -in ca.crt -noout -dates












Perpanjangan Sertifikat



Misalnya:




CODE
Root CA
2026 → 2036

Wildcard
2026 → 2031






Pada tahun 2031:




  • Root CA masih berlaku.

  • Yang diperpanjang hanya Wildcard Certificate.



Generate CSR baru, sign kembali menggunakan ca.key, lalu ganti file:




CODE
fullchain.crt
wildcard.key






Reload Nginx:




CODE
sudo systemctl reload nginx






Client tidak perlu import ulang Root CA selama Root CA yang digunakan masih sama.









Backup yang Wajib



Simpan dengan aman:




CODE
/root/pki/ca.key
/root/pki/ca.crt






Backup minimal di:




  • Flashdisk offline

  • NAS

  • Password Manager yang mendukung attachment file




Jika ca.key hilang, Anda tidak dapat menerbitkan atau memperpanjang sertifikat menggunakan Root CA tersebut.










Kesimpulan



Dengan metode Root CA + Wildcard Certificate, kita mendapatkan beberapa keuntungan:




  • Tidak membutuhkan domain publik.

  • Tidak membutuhkan IP publik.

  • HTTPS valid tanpa warning setelah Root CA dipercaya.

  • Satu sertifikat wildcard dapat digunakan untuk banyak subdomain.

  • Renewal cukup dilakukan pada wildcard certificate tanpa perlu mengubah konfigurasi di sisi client selama Root CA masih berlaku.



Metode ini sangat cocok untuk infrastruktur internal seperti rumah sakit, perusahaan, laboratorium, sekolah, maupun homelab yang seluruh layanannya berada di jaringan privat.

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Hackers Just Poisoned the Rust Supply Chain | Threat Wire
1 Quelle
Hackers Found a Way Into Humanoid Robots | Threat Wire
1 Quelle
Bits und so #1021 (Passwort für Laufwerk)
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Reverse Proxy Setup + SSL Self-Sign (Root CA + Wildcard)

Thematisch verwandte Begriffe: Reverse, Proxy, Setup, SelfSign · 6 Treffer

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...