$ aoox

DocsInfrastruktur

Sertifikat SSL kustom

Pakai sertifikat sendiri untuk domain aplikasi, sebagai ganti Let's Encrypt otomatis: unggah sekali, pilih per domain.

Unggah
Integrasi → Sertifikat SSL (owner/admin)
Pasang
Aplikasi → tab Domain, per domain HTTPS
Berlaku untuk
Domain aplikasi saja

Kapan dipakai

Secara default domain HTTPS memakai Let's Encrypt otomatis. Sertifikat kustom berguna bila:

  • perusahaanmu mewajibkan sertifikat dari CA internal atau CA tertentu;
  • kamu sudah punya sertifikat wildcard berbayar yang ingin dipakai untuk banyak subdomain;
  • kamu memakai Cloudflare Origin CA di belakang proxy Cloudflare;
  • jaringan server tidak bisa dijangkau Let's Encrypt (mis. tidak ada akses port 80 dari luar).

Mengunggah sertifikat

  1. Integrasi → Sertifikat SSL

    Hanya owner/admin yang melihat kartu ini. Klik Unggah.

  2. Isi nama, sertifikat, dan kunci privat

    Tempel isi PEM atau klik Pilih berkas untuk membaca berkas .pem/.crt dan kunci dari komputermu (dibaca di browser). Syaratnya:

    • Format PEM: blok -----BEGIN CERTIFICATE----- untuk sertifikat dan -----BEGIN PRIVATE KEY----- (atau RSA/EC) untuk kunci.
    • Sertifikat boleh berupa bundle: sertifikat server lebih dulu, lalu intermediate (rantai). Urutan salah ditolak.
    • Kunci privat tidak boleh dilindungi passphrase. Lepas dulu, mis. openssl pkey -in kunci.pem -out kunci-tanpa-pass.pem.
    • Kunci harus cocok dengan sertifikat, dan sertifikat belum kedaluwarsa.
    • Nama harus unik.
  3. Klik Unggah

    aoox membaca nama domain yang dicakup (termasuk wildcard), penerbit, dan tanggal kedaluwarsanya. Kunci privat tidak bisa dilihat lagi setelah disimpan.

Daftar di kartu menampilkan nama, domain yang dicakup, penerbit, tanggal kedaluwarsa, dan berapa domain yang memakainya.

Memasang ke domain

Di tab Domain aplikasi, setiap domain HTTPS punya pilihan Sertifikat:

  • Otomatis (Let's Encrypt) — default; proxy meminta sertifikat sendiri.
  • Salah satu sertifikat yang kamu unggah. Hanya yang mencakup host domain itu yang bisa dipilih; yang lain tampil nonaktif dengan keterangan “tidak mencakup host”.

Pilihan yang sama ada saat menambah domain baru (setelah HTTPS dinyalakan). Mengubahnya butuh peran developer ke atas; viewer hanya melihat sertifikat yang dipakai. Domain tanpa HTTPS tidak punya pilihan ini. Memilih kembali Otomatis mengembalikan domain ke Let's Encrypt.

Wildcard

Tidak punya sertifikat sendiri? Dengan koneksi Cloudflare, aoox bisa menerbitkan sertifikat wildcard sendiri lewat ACME DNS-01, lihat DNS Cloudflare.

Sertifikat *.example.com mencakup satu level: app.example.com ya, tetapi a.b.example.com dan example.com sendiri tidak. Aturannya sama dengan yang dipakai browser; sertifikat yang mencakup example.com dan *.example.com sekaligus melayani keduanya.

Kedaluwarsa dan perpanjangan

  • Kartu memberi lencana: hijau (normal), ambar (kurang dari 14 hari), merah (sudah kedaluwarsa). Tab Domain menandai domain yang sertifikatnya hampir atau sudah kedaluwarsa.
  • aoox mengirim notifikasi (jenis kegagalan sertifikat) saat sisa waktunya 14 hari atau kurang, dan lagi bila sudah kedaluwarsa; paling sering sekali per 24 jam per sertifikat. Hanya sertifikat yang dipakai domain yang diperingatkan.
  • Sertifikat kustom yang kedaluwarsa tidak jatuh otomatis ke Let's Encrypt: browser akan menolak domain itu sampai kamu memperbaruinya atau memilih Otomatis.

Untuk memperpanjang, klik Perbarui pada sertifikat dan tempel sertifikat serta kunci baru. Nama tetap, dan semua domain yang memakainya otomatis ikut. Isi baru harus tetap mencakup domain yang sudah memakainya; kalau tidak, pembaruan ditolak (400).

Menghapus

Tombol hapus memunculkan dialog konfirmasi. Sertifikat yang masih dipakai domain tidak bisa dihapus (409): pindahkan domainnya ke sertifikat lain atau Let's Encrypt dulu.

Batas

  • Hanya untuk domain aplikasi. Domain untuk panel dan registry lokal tetap memakai ACME.
  • Pada instalasi proxy lama yang belum bisa membaca sertifikat kustom, container proxy dibuat ulang satu kali (beberapa detik) saat sertifikat kustom pertama dipakai; port dan pengaturan ACME-nya dipertahankan. Proxy baru tidak perlu dibuat ulang, dan mengganti isi sertifikat tidak me-restart apa pun.
  • Sertifikat dan penugasannya tidak ikut ekspor/impor project (domain hasil impor memakai Let's Encrypt) dan tidak dipulihkan oleh restore instance; unggah ulang bila perlu.

Keamanan

Kunci privat disimpan terenkripsi di database aoox dan sebagai berkas dengan izin 0600 di volume proxy. API tidak pernah mengembalikannya, dan tidak masuk log atau notifikasi. Tetap batasi siapa yang jadi owner/admin, dan cabut sertifikat yang kuncinya bocor.

Jebakan umum

GejalaPenyebab & solusi
400: kunci tidak cocokKunci bukan pasangan sertifikat pertama di bundle. Pastikan sertifikat server ada di atas, rantai di bawahnya.
400: kunci terenkripsiLepas passphrase dulu (openssl pkey), lalu unggah ulang.
400: sudah kedaluwarsaUnggah sertifikat yang masih berlaku.
409: nama sudah dipakaiPakai nama lain, atau perbarui sertifikat yang ada.
Sertifikat tidak bisa dipilih untuk domainSertifikat tidak mencakup host itu (ingat wildcard hanya satu level).
Browser tetap menolakRantai tidak lengkap: sertakan intermediate di bundle. Atau domain belum diarahkan ke server ini.

Langkah berikutnya

Ada yang keliru? Edit halaman ini di GitHub ↗