Cara Menginstal Sertifikat SSL di Situs WordPress Anda
Sebuah sertifikat SSL (Secure Sockets Layer / TLS) adalah protokol kriptografi yang mengenkripsi data dalam transit antara server web dan browser. Pada situs WordPress, menginstal SSL berarti setiap permintaan HTTP dialihkan ke HTTPS, browser menampilkan ikon gembok, dan data sensitif — kredensial login, pengiriman formulir, detail pembayaran — berjalan melalui saluran terenkripsi, bukan teks biasa.
Khusus untuk WordPress, instalasi SSL melibatkan tiga lapisan yang berbeda: menyediakan sertifikat di tingkat server atau hosting, mengonfigurasi WordPress itu sendiri untuk menyajikan semua aset melalui HTTPS, dan menghilangkan peringatan konten campuran yang secara diam-diam merusak konteks aman. Lewatkan salah satu dari ini dan situs Anda akan menampilkan gembok rusak, memicu peringatan keamanan browser, atau gagal validasi HTTPS sepenuhnya.
Langkah 1: Pilih Jenis Sertifikat SSL yang Tepat
Tidak semua sertifikat SSL menawarkan tingkat validasi atau sinyal kepercayaan yang sama. Memilih jenis yang salah adalah kesalahan umum yang membuang uang atau, sebaliknya, kurang melindungi situs yang menangani transaksi sensitif.
Perbandingan Tingkatan Validasi
| Jenis Sertifikat | Tingkat Validasi | Waktu Penerbitan | Terbaik Untuk | Sinyal Kepercayaan Browser |
|---|---|---|---|---|
| — | — | — | — | — |
| **Domain Validated (DV)** | Kepemilikan domain saja | Menit hingga jam | Blog, situs pribadi, lingkungan pengembangan | Ikon gembok |
| **Organization Validated (OV)** | Domain + entitas hukum | 1–3 hari kerja | Situs bisnis, portal SaaS | Gembok + detail organisasi dalam sertifikat |
| **Extended Validation (EV)** | Verifikasi hukum + operasional penuh | 1–5 hari kerja | E-commerce, perbankan, portal kepercayaan tinggi | Gembok + nama organisasi (beberapa browser) |
| **Wildcard DV/OV** | Domain + semua subdomain | Menit hingga hari | Penerapan multi-subdomain | Gembok |
| **Multi-Domain (SAN)** | Beberapa domain yang berbeda | Menit hingga hari | Agensi yang mengelola beberapa properti | Gembok |
SSL Gratis vs. Berbayar
Let's Encrypt menerbitkan sertifikat DV gratis dan otomatis yang berlaku selama 90 hari dengan dukungan pembaruan otomatis melalui protokol ACME. Sertifikat ini dipercaya oleh semua browser utama dan merupakan pilihan yang tepat untuk sebagian besar situs WordPress. Jangka waktu validitas yang singkat disengaja — ini memaksa otomatisasi dan mengurangi jendela risiko sertifikat yang disusupi.
SSL gratis Cloudflare beroperasi secara berbeda: ini mengenkripsi koneksi antara pengunjung dan edge Cloudflare, tetapi koneksi antara Cloudflare dan server asal Anda mungkin masih tidak terenkripsi kecuali Anda mengonfigurasi mode Full (Strict) dengan sertifikat asal yang valid. Ini adalah kasus tepi yang sering disalahpahami yang menciptakan rasa aman yang palsu.
Sertifikat berbayar dari CA komersial (DigiCert, Sectigo, GlobalSign) diperlukan ketika Anda membutuhkan validasi OV atau EV, garansi, atau konfigurasi SAN/Wildcard tertentu yang tidak didukung oleh Let's Encrypt.
Jika Anda perlu membeli sertifikat tepercaya untuk domain Anda, AlexHost menyediakan Sertifikat SSL dengan penerbitan dan pengelolaan langsung dari panel akun Anda.
Langkah 2: Instal Sertifikat SSL di Tingkat Hosting
Sertifikat harus diinstal di server web sebelum WordPress dapat menyajikan respons HTTPS. Metodenya bergantung pada lingkungan hosting Anda.
Menginstal SSL melalui cPanel (Hosting Bersama dan VPS)
cPanel adalah panel kontrol yang paling umum untuk lingkungan bersama dan terkelola. Jika host Anda menggunakan AutoSSL (didukung Sectigo) atau mendukung Let's Encrypt secara native, satu klik menyediakan dan memperbarui sertifikat secara otomatis.
Langkah instalasi manual ketika Anda memiliki file sertifikat dari CA:
- Masuk ke cPanel dan navigasikan ke Security > SSL/TLS.
- Klik Manage SSL Sites.
- Pilih domain target dari menu dropdown.
- Tempelkan isi tiga file ke dalam kolom yang sesuai:
- Certificate (CRT): Sertifikat yang ditandatangani dari CA Anda.
- Private Key (KEY): Dibuat selama pembuatan CSR — jangan pernah bagikan ini.
- Certificate Authority Bundle (CABUNDLE): Sertifikat rantai perantara.
- Klik Install Certificate.
Jika Anda menjalankan WordPress pada VPS dengan cPanel, AutoSSL biasanya menangani ini secara otomatis untuk semua domain di WHM. Verifikasi di bawah WHM > SSL/TLS > Manage AutoSSL bahwa domain tercakup dan sertifikat tidak dalam status tertunda atau gagal.
Menginstal SSL pada VPS dengan Apache (Metode Manual)
Pada VPS Linux yang dikelola sendiri yang menjalankan Apache, prosesnya memerlukan pengeditan konfigurasi virtual host secara langsung.
Instal Certbot (klien Let's Encrypt) pada Debian/Ubuntu:
sudo apt update
sudo apt install certbot python3-certbot-apache -yDapatkan dan instal sertifikat secara otomatis:
sudo certbot --apache -d yourdomain.com -d www.yourdomain.comCertbot memodifikasi konfigurasi virtual host Apache Anda, menginstal sertifikat, dan menyiapkan cron job atau systemd timer untuk pembaruan otomatis. Verifikasi bahwa timer pembaruan aktif:
sudo systemctl status certbot.timerUntuk Nginx pada VPS:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.comInstalasi sertifikat manual pada Apache (saat menggunakan sertifikat CA berbayar):
Tempatkan file sertifikat Anda di direktori yang aman, lalu edit virtual host Anda:
<VirtualHost *:443>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/yourdomain.crt
SSLCertificateKeyFile /etc/ssl/private/yourdomain.key
SSLCertificateChainFile /etc/ssl/certs/yourdomain_ca_bundle.crt
</VirtualHost>Restart Apache untuk menerapkan:
sudo systemctl restart apache2Jika Anda mengelola instalasi WordPress dengan lalu lintas tinggi pada Dedicated Server, Anda memiliki kendali penuh atas cipher suite, header HSTS, dan OCSP stapling — konfigurasi yang tidak mungkin dilakukan pada hosting bersama.
Menginstal SSL pada VPS dengan Nginx (Metode Manual)
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/ssl/certs/yourdomain.crt;
ssl_certificate_key /etc/ssl/private/yourdomain.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
root /var/www/html;
index index.php;
}Muat ulang Nginx setelah mengedit:
sudo nginx -t && sudo systemctl reload nginxLangkah 3: Paksa HTTPS di Tingkat Server dengan Pengalihan 301
Sebelum menyentuh pengaturan WordPress, terapkan pengalihan HTTP-ke-HTTPS di tingkat server. Ini lebih andal daripada hanya mengandalkan WordPress atau plugin, dan mencegah browser memuat versi HTTP sama sekali.
Apache: .htaccess Pengalihan
Buka file .htaccess Anda (terletak di root WordPress Anda, biasanya /var/www/html/.htaccess atau dapat diakses melalui cPanel File Manager) dan tambahkan blok berikut di atas aturan penulisan ulang WordPress yang sudah ada:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Jebakan kritis: Jika Anda menempatkan blok ini *setelah* penanda # BEGIN WordPress, blok tersebut mungkin akan ditimpa oleh pembaruan inti WordPress. Selalu tempatkan aturan pengalihan tingkat server di atas blok yang dikelola WordPress.
Nginx: Pengalihan Server Block
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}Header HSTS (Lanjutan, Direkomendasikan)
Setelah Anda yakin pengaturan HTTPS Anda stabil, tambahkan header HTTP Strict Transport Security untuk menginstruksikan browser agar tidak pernah mencoba koneksi HTTP:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"Peringatan: Jangan aktifkan HSTS dengan preload sampai Anda yakin setiap subdomain juga memiliki sertifikat SSL yang valid. Preloading tidak dapat dibatalkan dalam jangka pendek dan akan merusak subdomain yang tidak memiliki HTTPS yang dikonfigurasi.
Langkah 4: Perbarui WordPress untuk Menyajikan Semua Konten Melalui HTTPS
Dengan sertifikat yang terinstal dan pengalihan tingkat server yang sudah ada, WordPress itu sendiri harus diberitahu untuk menghasilkan URL HTTPS untuk semua tautan internal, aset, dan endpoint API.
Opsi A: Perbarui URL Situs WordPress Secara Manual
- Buka Settings > General di dasbor admin WordPress Anda.
- Ubah WordPress Address (URL) dan Site Address (URL) dari
http://menjadihttps://. - Klik Save Changes.
WordPress akan mengeluarkan Anda segera setelah menyimpan. Masuk kembali menggunakan URL HTTPS.
Opsi B: Perbarui URL melalui wp-config.php
Jika Anda terkunci dari panel admin atau lebih suka pendekatan berbasis kode, tambahkan baris ini ke wp-config.php sebelum baris /* That's all, stop editing! */:
define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');Opsi C: Perbarui URL HTTP yang Dikodekan Keras di Database
WordPress menyimpan URL di database, termasuk data terserialisasi dalam tabel post meta dan options. Pencarian dan penggantian sederhana pada SQL mentah dapat merusak array terserialisasi. Gunakan WP-CLI untuk penggantian yang aman dan sadar serialisasi:
wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --skip-columns=guid --all-tablesFlag --skip-columns=guid mempertahankan GUID posting, yang tidak boleh diubah sesuai praktik terbaik WordPress. Jalankan ini dari direktori root WordPress Anda dengan kredensial database yang sesuai yang dikonfigurasi di wp-config.php.
Sebagai alternatif, plugin Better Search Replace melakukan operasi yang sama melalui UI admin dengan dukungan serialisasi.
Langkah 5: Perbaiki Peringatan Konten Campuran
Peringatan konten campuran terjadi ketika halaman HTTPS memuat satu atau lebih sumber daya (gambar, skrip, stylesheet, iframe) melalui HTTP. Ini merusak konteks aman, menyembunyikan gembok, dan dalam beberapa kasus menyebabkan browser memblokir sumber daya sepenuhnya.
Mendiagnosis Konten Campuran
Buka alat pengembang browser Anda (F12), buka tab Console, dan cari peringatan yang diawali dengan Mixed Content:. Pesan tersebut akan mengidentifikasi URL sumber daya yang menyebabkan masalah.
Sebagai alternatif, gunakan alat Why No Padlock? atau jalankan pemindaian SSL Labs untuk mendapatkan laporan lengkap.
Memperbaiki Konten Campuran: Metode Plugin
Really Simple SSL adalah plugin yang paling banyak digunakan untuk tujuan ini. Setelah aktivasi, plugin ini:
- Mengatur variabel server
HTTPSuntuk memaksa WordPress mengenali koneksi aman. - Menambahkan filter konten berbasis JavaScript untuk menulis ulang URL HTTP secara langsung.
- Secara opsional menghapus aturan penulisan ulang dan memperbarui URL situs.
SSL Insecure Content Fixer menawarkan kontrol yang lebih terperinci, memungkinkan Anda memilih antara penggantian buffer output sederhana dan pendekatan hook filter WordPress yang lebih dalam — berguna ketika metode JavaScript Really Simple SSL menyebabkan masalah rendering dengan pembuat halaman tertentu.
Memperbaiki Konten Campuran: Metode Manual
Untuk URL HTTP yang dikodekan keras dalam file tema atau plugin kustom, cari direktori tema Anda:
grep -r "http://yourdomain.com" /var/www/html/wp-content/themes/your-theme/Ganti semua kemunculan dengan https:// atau, lebih baik, gunakan URL relatif protokol (//yourdomain.com/...) untuk sumber daya pihak ketiga di mana Anda tidak dapat menjamin ketersediaan HTTPS.
Untuk media yang diunggah sebelum migrasi SSL, jalankan perintah WP-CLI search-replace dari Langkah 4 jika Anda belum melakukannya, karena URL lampiran gambar disimpan dalam tabel wp_posts dan wp_postmeta.
Langkah 6: Validasi Instalasi SSL
Jangan pernah berasumsi instalasi berhasil — verifikasi secara sistematis.
Tes SSL Labs
Navigasikan ke https://www.ssllabs.com/ssltest/ dan masukkan domain Anda. Situs WordPress yang dikonfigurasi dengan benar harus mendapatkan skor A atau A+. Rating A+ memerlukan:
- Dukungan TLS 1.2 dan 1.3 dengan TLS 1.0 dan 1.1 dinonaktifkan.
- Cipher suite yang kuat (tanpa RC4, tanpa 3DES).
- Header HSTS ada.
- OCSP stapling diaktifkan.
- Tidak ada masalah rantai (sertifikat perantara terinstal dengan benar).
Verifikasi Browser
Klik ikon gembok di bilah alamat. Di Chrome, navigasikan ke Connection is secure > Certificate is valid untuk mengonfirmasi penerbit, tanggal validitas, dan Subject Alternative Names (SAN) sesuai dengan domain Anda.
Verifikasi Baris Perintah
openssl s_client -connect yourdomain.com:443 -servername yourdomain.comIni menampilkan rantai sertifikat lengkap, cipher yang dinegosiasikan, dan versi TLS. Cari Verify return code: 0 (ok) untuk mengonfirmasi rantai dipercaya.
Periksa Kedaluwarsa Sertifikat
echo | openssl s_client -connect yourdomain.com:443 2>/dev/null | openssl x509 -noout -datesUntuk sertifikat Let's Encrypt, verifikasi juga bahwa uji coba pembaruan otomatis berfungsi:
sudo certbot renew --dry-runLangkah 7: Penguatan Pasca-Instalasi dan Pembersihan SEO
Perbarui Google Search Console
Tambahkan versi HTTPS situs Anda sebagai properti baru di Google Search Console. Google memperlakukan http:// dan https:// sebagai properti terpisah. Kirimkan sitemap HTTPS Anda (https://yourdomain.com/sitemap.xml) untuk mempercepat perayapan ulang URL yang diperbarui.
Perbarui Sitemap dan Tag Kanonik Anda
Pastikan sitemap XML Anda (yang dihasilkan oleh Yoast SEO, Rank Math, atau sejenisnya) hanya menampilkan URL HTTPS. Periksa bahwa tag kanonik di <head> tema Anda merujuk ke HTTPS. Tag kanonik yang menunjuk ke versi HTTP dari sebuah halaman akan membingungkan crawler meskipun pengalihan 301 sudah ada.
Beri Tahu Google tentang Perubahan
Di Google Search Console, gunakan alat Change of Address hanya jika Anda telah bermigrasi ke domain yang sepenuhnya baru. Untuk migrasi HTTP-ke-HTTPS pada domain yang sama, pengalihan 301 menangani transfer sinyal — tidak diperlukan alat perubahan alamat.
Pertimbangan WordPress Multisite
Pada jaringan WordPress Multisite, Anda harus memperbarui nilai siteurl dan home dalam tabel wp_siteurl dan wp_blogs untuk setiap subsite, bukan hanya situs utama. WP-CLI menangani ini per situs:
wp search-replace 'http://subdomain.yourdomain.com' 'https://subdomain.yourdomain.com' --url=subdomain.yourdomain.com --all-tablesMatriks Keputusan Praktis: Metode SSL Mana yang Digunakan
| Lingkungan Hosting Anda | Metode SSL yang Direkomendasikan | Pembaruan | Upaya |
|---|---|---|---|
| — | — | — | — |
| Shared hosting dengan cPanel | AutoSSL atau Let's Encrypt melalui cPanel | Otomatis | Minimal |
| VPS Hosting dengan Apache/Nginx | Certbot (Let's Encrypt) | Otomatis melalui systemd timer | Rendah |
| VPS dengan cPanel/WHM | AutoSSL di WHM | Otomatis | Minimal |
| Dedicated Server | Certbot atau sertifikat CA berbayar | Manual atau otomatis | Sedang |
| Domain yang diproksikan Cloudflare | Cloudflare SSL + sertifikat Origin | Otomatis (Cloudflare) | Rendah (tetapi verifikasi mode Full Strict) |
| Situs E-commerce / kepercayaan tinggi | Sertifikat OV atau EV berbayar | Pembaruan manual tahunan | Tinggi |
Poin Teknis Utama
- Instalasi sertifikat dan konfigurasi WordPress adalah langkah yang terpisah. Sertifikat yang diinstal di tingkat server tidak secara otomatis membuat WordPress menghasilkan URL HTTPS. Keduanya harus dikonfigurasi.
- Konten campuran adalah kegagalan pasca-migrasi yang paling umum. Jalankan search-replace database dengan WP-CLI sebelum mengaktifkan plugin SSL apa pun untuk menangkap URL HTTP yang dikodekan keras dari sumbernya.
- Pembaruan otomatis Let's Encrypt harus diverifikasi, bukan diasumsikan. Jalankan
certbot renew --dry-runsetelah pengaturan awal dan pantau tanggal kedaluwarsa. Pembaruan yang gagal secara diam-diam merusak situs Anda 90 hari kemudian. - HSTS adalah pintu satu arah. Jangan tetapkan
max-ageyang panjang atau aktifkanpreloadsampai setiap subdomain memiliki sertifikat yang valid dan Anda berkomitmen untuk HTTPS secara permanen. - SSL gratis Cloudflare tidak dienkripsi end-to-end secara default. Atur mode SSL/TLS ke Full (Strict) dan instal sertifikat origin di server Anda untuk menutup celah tersebut.
- Pada shared hosting, verifikasi bahwa SSL penyedia hosting Anda mencakup domain apex (
yourdomain.com) dan subdomainwww. Sertifikat yang hanya diterbitkan untuk satu akan menghasilkan kesalahan ketidakcocokan nama pada yang lain. - Data terserialisasi dalam database WordPress tidak dapat diperbarui dengan aman menggunakan SQL
REPLACE()mentah. Selalu gunakan WP-CLI atau plugin yang sadar serialisasi.
Untuk situs yang dihosting pada Shared Web Hosting, jalur tercepat menuju SSL adalah mengaktifkan AutoSSL atau Let's Encrypt melalui cPanel — seluruh proses membutuhkan waktu kurang dari lima menit dan tidak memerlukan akses baris perintah. Untuk penerapan yang lebih kompleks yang memerlukan konfigurasi cipher kustom, OCSP stapling, atau sertifikat multi-domain, VPS dengan panel kontrol yang dapat dikonfigurasi memberi Anda akses tingkat server yang diperlukan.
FAQ
Apakah menginstal sertifikat SSL secara langsung meningkatkan peringkat Google saya?
Google mengonfirmasi HTTPS sebagai sinyal peringkat pada tahun 2014. Peningkatan peringkat langsung bersifat sederhana, tetapi manfaat tidak langsung — pengurangan bounce rate dari peringatan keamanan browser, kelayakan untuk HTTP/2 dan HTTP/3, dan kepercayaan pengguna — memiliki efek kumulatif yang terukur pada performa organik.
Apa perbedaan antara SSL dan TLS?
SSL (Secure Sockets Layer) adalah pendahulu yang sudah usang dari TLS (Transport Layer Security). Semua sertifikat modern menggunakan TLS 1.2 atau 1.3. Istilah “sertifikat SSL” bertahan sebagai singkatan industri, tetapi tidak ada browser atau server yang menggunakan SSL sebenarnya sejak 2015. Jika server Anda masih menerima SSLv3 atau TLS 1.0, nonaktifkan segera — keduanya rentan terhadap serangan POODLE dan BEAST.
Mengapa situs saya masih menampilkan “Not Secure” setelah menginstal sertifikat?
Penyebab paling umum adalah kesalahan konten campuran: setidaknya satu sumber daya di halaman memuat melalui HTTP. Buka alat pengembang browser, periksa Console untuk peringatan konten campuran, dan gunakan WP-CLI search-replace atau plugin Really Simple SSL untuk menulis ulang URL yang bermasalah. Penyebab sekunder adalah URL Situs WordPress di Settings > General masih menunjuk ke http://.
Bagaimana cara memperbarui sertifikat Let's Encrypt sebelum kedaluwarsa?
Certbot menginstal systemd timer atau cron job yang mencoba pembaruan secara otomatis ketika sertifikat berada dalam 30 hari dari kedaluwarsa. Untuk memaksa pembaruan segera, jalankan sudo certbot renew --force-renewal. Untuk menguji tanpa membuat perubahan, jalankan sudo certbot renew --dry-run. Periksa log pembaruan di /var/log/letsencrypt/letsencrypt.log jika pembaruan gagal.
Bisakah saya menginstal SSL pada WordPress tanpa akses ke server atau cPanel?
Ya, melalui Cloudflare. Tambahkan domain Anda ke Cloudflare, arahkan nameserver Anda ke nameserver Cloudflare, dan aktifkan pengaturan SSL/TLS. Jalur pengunjung-ke-Cloudflare dienkripsi segera. Namun, atur mode ke Full (Strict) dan instal Cloudflare Origin Certificate di server Anda untuk juga mengenkripsi jalur Cloudflare-ke-origin. Tanpa ini, koneksi antara Cloudflare dan server Anda tetap tidak terenkripsi, yang merupakan celah keamanan signifikan pada situs mana pun yang menangani data pengguna.
