Hampir setiap situs web WordPress harus dilayani melalui HTTPS, bukan HTTP, untuk alasan keamanan dan SEO. Konten HTTP tidak dienkripsi, membuat situs Anda rentan, dan Google mulai menggunakan HTTPS sebagai sinyal peringkat pada tahun 2014. Ini juga diperlukan untuk HTTP/2, yang menawarkan kecepatan lebih tinggi daripada HTTP. Dalam artikel ini, saya akan menunjukkan kepada Anda semua yang perlu Anda ketahui untuk mengubah situs dari HTTP ke HTTPS, termasuk menerapkan sertifikat SSL dan menangani peringatan konten campuran apa pun Show
Daftar isiAlasan untuk Beralih dari HTTP ke HTTPSSebagian besar situs di web saat ini sudah HTTPS. Sekitar 95% situs menggunakan HTTPS, menurut Laporan Transparansi Google. Namun, masih ada kebutuhan untuk memindahkan situs dari HTTP ke HTTPS. Saya dapat memikirkan setidaknya tiga kasus penggunaan
Mendapatkan sertifikat SSL hanyalah bagian dari pertempuran. Ada beberapa tweak lagi yang Anda perlukan agar situs WordPress Anda berjalan dengan baik melalui HTTPS setelah memasang sertifikat
Mengapa Anda Membutuhkan Sertifikat SSLSertifikat SSL yang divalidasi dengan benar memastikan data yang ditransfer antara dua sistem dienkripsi. Beginilah prosesnya rusak
Singkatnya, sertifikat SSL mengautentikasi identitas situs Anda, memungkinkan koneksi yang aman. Dimungkinkan untuk menandatangani sendiri sertifikat dalam beberapa kasus, seperti saat Anda memerlukan SSL untuk pengembangan lokal. Seringkali, Anda akan menggunakan SSL yang disediakan oleh host Anda SSL adalah kependekan dari Secure Sockets Layer. Anehnya, apa yang kita sebut SSL saat ini sebenarnya adalah protokol yang dirubah. Keamanan Lapisan Transportasi (TLS). Teknologi yang mendasari dan namanya berubah, tetapi inisial SSL tetap ada Memilih SSL yang TepatSertifikat SSL dikategorikan dalam dua cara. tingkat validasi dan jenis domain yang akan mereka amankan Tingkat Validasi
Domain Aman
Beralih ke HTTPSAda beberapa hal yang perlu Anda urus sebelum memulai. Pertama, Anda harus mempertimbangkan untuk membuat cadangan situs Anda terlebih dahulu. Jika ini adalah situs langsung, pastikan untuk membuat cadangan terlebih dahulu. Ada persyaratan lain yang harus Anda miliki juga
Yang terakhir secara teknis tidak diperlukan, tetapi Anda tidak akan mendapatkan manfaat kinerja HTTP/2 jika tidak didukung. Anda juga mungkin ingin mempertimbangkan plugin yang mendukung pemulihan berbagi, karena pembagian sosial dihitung pada postingan Anda dan halaman akan hilang saat Anda beralih dari HTTP ke HTTPS Satu kata peringatan tentang lalu lintas. jika Anda mengalihkan situs langsung ke HTTPS, jangan heran jika lalu lintas dan peringkat pencarian Anda sedikit menurun saat Google merayapi ulang situs HTTPS baru Memperoleh, Menerapkan, dan Memverifikasi Sertifikat SSL AndaBanyak perusahaan hosting WordPress menawarkan sertifikat SSL sebagai bagian dari layanan mereka. Proses untuk meminta ini bervariasi dari host ke host (dan mungkin tidak disertakan dalam paket hosting Anda), tetapi biasanya cukup mudah. Misalnya, jika situs Anda dihosting oleh WP Engine, maka yang perlu Anda lakukan hanyalah masuk ke Portal Pengguna WP Engine, pilih instalasi WordPress yang ingin Anda sertifikasi, pilih SSL, dan klik Tambahkan Sertifikat. Anda kemudian dapat memilih dari opsi yang ada Jika host web Anda tidak menawarkan sertifikat SSL, Anda juga dapat membelinya dari CA, seperti GoDaddy atau GlobalSign. Anda kemudian harus menginstal sertifikat secara manual. Proses yang tepat untuk ini sangat bervariasi tergantung pada konfigurasi server Anda, tetapi minimal Anda memerlukan akses SSH dan/atau panel kontrol ke server Anda, serta akses ke catatan DNS untuk domain Anda. Linode dan DigitalOcean memiliki panduan hebat yang membahas hal ini secara mendetail Opsi lainnya adalah menyiapkan Let’s Encrypt SSL dan mendapatkan sertifikat gratis dengan cara itu Apa pun metode yang Anda gunakan, proses menghasilkan Permintaan Penandatanganan Sertifikat (CSR) di server tempat ia akan dipasang dan meneruskan permintaan ke CA. CSR mencakup informasi terkait seperti nama domain, nama organisasi, dll. Itu juga berisi kunci publik yang akan dikaitkan dengan sertifikat. Proses tersebut juga akan membuat kunci privat, yang tidak termasuk dalam CSR. Catat kunci pribadi ini, karena Anda memerlukannya untuk memasang sertifikat Jika Anda menggunakan proses manual, Anda harus mengunduh sertifikat SSL dan file bundel sertifikat dari CA Anda, dan mengunggahnya ke server Anda. Anda kemudian perlu mengedit file konfigurasi server Anda untuk mereferensikan SSL dan file bundel Menentukan Versi HTTPS dari URL di wp-config. phpSetelah menginstal sertifikat SSL, Anda harus memperbarui situs untuk menggunakannya. Satu kebiasaan yang saya ambil dari bekerja dengan WordPress selama bertahun-tahun adalah saya selalu menentukan URL Situs baru di file Ini dapat membantu memecahkan masalah utama apa pun yang mungkin timbul dari perubahan URL. Misalnya, sertifikat SSL mungkin tidak diatur dengan benar, atau mungkin ada beberapa kode yang bergantung pada URL. Jika hal seperti itu terjadi, mudah dan cepat untuk menghapus baris dari file Untuk melakukan ini, edit file define( 'WP_HOME', 'https://mdb.test' ); define( 'WP_SITEURL', 'https://mdb.test' ); Baris ini lebih diutamakan daripada nilai opsi wp db export ../mdb_test_backup.sql2 dan wp db export ../mdb_test_backup.sql3 di database Anda Anda juga dapat menyesuaikannya melalui dasbor WordPress. Klik Pengaturan > Umum dan pastikan alamat WordPress dan alamat situs disetel ke versi HTTPS. Jika tidak, Anda dapat menyesuaikannya di sini Lihat beberapa halaman di situs Anda setelah Anda menambahkannya ke file Memperbaiki Peringatan Konten Campuran Dengan Search and ReplacePeringatan konten campuran terjadi saat halaman mengirimkan konten HTTPS dan HTTP ke browser. Konten itu sendiri dapat terdiri dari JavaScript, CSS, gambar, atau sumber daya apa pun yang ditautkan. Peringatan ini berarti bahwa halaman tersebut hanya dienkripsi sebagian, dan oleh karena itu beberapa informasi dapat dibaca atau diubah oleh penyerang. Anda dapat memperbaikinya secara manual, tetapi biasanya Anda lebih baik menjalankan pencarian dan mengganti menggunakan WP Migrate, WP Migrate Pro, atau melalui baris perintah dengan WP-CLI Proses manual mengharuskan Anda untuk mengunjungi setiap halaman yang memunculkan peringatan konten campuran. Setelah Anda berada di sana, mulai devtools browser Anda dan klik Konsol. Ini akan menunjukkan dengan tepat apa yang menyebabkan peringatan tersebut sehingga Anda dapat mengambil langkah untuk memperbaikinya. Salah satu penyebab paling umum adalah sumber daya tertaut, seperti gambar, yang diambil dari sumber non-HTTPS Menjalankan Pencarian/Ganti Dengan WP MigrateSekarang setelah URL Situs utama dan URL Beranda dialihkan ke HTTPS, kami masih perlu memperbarui konten lainnya di database untuk menggunakan versi HTTPS dari URL Kita dapat melakukannya dengan fitur WP Migrate Find and Replace. Buka WP Migrate di backend situs WordPress Anda, klik Migrate, lalu klik Find & Replace di bawah “Tools for This Site” Langkah selanjutnya adalah menyempurnakan pencarian dan penggantian kami. Saya telah menyetelnya untuk mencari semua tabel, dan mencentang opsi "Cadangkan semua tabel dengan awalan 'wp_'" – ini memastikan bahwa kita dapat memutar kembali jika perlu nanti Di bawah "Opsi Lanjutan", saya membiarkan opsi "Ganti GUID" tidak dicentang. Ini penting jika situs web Anda sudah aktif karena memperbarui GUID dapat membuat postingan atau halaman apa pun muncul sebagai baru di pembaca feed. Namun, saya sarankan untuk mencentang kotak ini jika Anda mengaktifkan situs untuk pertama kalinya. Saya juga tidak mencentang opsi "Kecualikan transien" jika ada opsi sementara di database yang bergantung pada URL situs Di bawah "Temukan & Ganti Kustom", saya telah menambahkan versi HTTP dari URL Di kolom "Temukan", dengan versi HTTPS di kolom "Ganti". Langkah terakhir klik Preview Changes. Ini akan memulai proses, menampilkan perubahan dan meminta Anda untuk menyimpan atau membatalkan masing-masing. Mengklik panah di sebelah tombol "Pratinjau Perubahan" memungkinkan Anda untuk mengalihkan fungsi tombol ke "Temukan & Ganti". Ini akan menjalankan seluruh proses tanpa diminta Menjalankan Pencarian/Ganti Dengan WP-CLIAnda juga dapat menjalankan pencarian dan mengganti baris perintah menggunakan WP-CLI Setelah meluncurkan WP-CLI, hal pertama yang harus Anda lakukan adalah mem-backup database Anda. Anda ingin dapat mengembalikan perubahan apa pun jika terjadi kesalahan Perintah WP-CLI selalu mengikuti format tertentu, dengan perintah induk dan subperintah, diikuti oleh parameter dan sakelar Perintah untuk melakukan perubahan pada database adalah wp db export ../mdb_test_backup.sql5. Kami akan menambahkan subperintah wp db export ../mdb_test_backup.sql_6 untuk mencadangkan database. Satu-satunya parameter yang perlu kita tambahkan adalah jalur file. Mari kita simpan satu folder dari direktori WordPress kita untuk membuatnya sedikit lebih sulit ditemukan oleh penyerang wp db export ../mdb_test_backup.sql_ Langkah selanjutnya adalah menjalankan pencarian dan penggantian, menggunakan wp db export ../mdb_test_backup.sql7. Agar ini berfungsi, kita perlu menambahkan opsi wp db export ../mdb_test_backup.sql_8 dan wp db export ../mdb_test_backup.sql9 ke perintah ini. Ini memberi tahu WP-CLI apa yang harus dicari dan apa yang harus diganti ketika menemukannya. Ganti wp db export ../mdb_test_backup.sql_8 (alamat HTTP) dan wp db export ../mdb_test_backup.sql9 (versi HTTPS) dengan nilai yang benar pada contoh di bawah, dengan tetap mempertahankan tanda kutip tunggal wp search-replace 'old' 'new' Perintah wp db export ../mdb_test_backup.sql7 mencantumkan banyak opsi lain selain wp search-replace 'old' 'new'3 dan wp search-replace 'old' 'new'4, tetapi kita akan melihat hanya tiga lagi untuk saat ini Yang pertama adalah wp search-replace 'old' 'new'_5, yang memberi tahu WP-CLI untuk menjalankan proses dan memberi Anda laporan, tetapi tidak benar-benar melakukan perubahan. Ini sangat berguna untuk memeriksa untuk memastikan proses akan bekerja sebagaimana dimaksud Yang kedua adalah wp search-replace 'old' 'new'_6. Ini memastikan WP-CLI hanya menampilkan perubahan, bukan setiap entri di situs WordPress kami Terakhir, kami akan memasukkan wp search-replace 'old' 'new'_7. Ini memastikan GUIDes yang ada di situs WordPress Anda dibiarkan sendiri. Anda harus menghilangkan opsi ini jika Anda menjalankan situs untuk pertama kalinya Inilah yang kami dapatkan ketika kami menggabungkan semuanya wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made. Memperbarui Skrip, Pustaka, dan CDN AndaAnda mungkin memiliki skrip dan pustaka khusus di header atau footer yang perlu diperbarui. Dalam kebanyakan kasus, Anda dapat memperbaikinya dengan memperbarui skrip agar mengarah ke versi HTTPS Jika Anda menggunakan Jaringan Pengiriman Konten (CDN), Anda mungkin perlu memperbaruinya juga. Metode aktual yang Anda gunakan akan bergantung pada CDN, tetapi sebagian besar layanan populer menyediakan panduan
Mengalihkan dari HTTP ke HTTPSAda berbagai cara untuk melakukannya tergantung pada apakah Anda menggunakan Nginx atau Apache di tumpukan Anda. Apa pun itu, Anda harus memasukkan SSH atau SFTP ke server Anda untuk melakukan perubahan apa pun. Selain itu, Anda dapat menggunakan plugin atau arahan Kebijakan Keamanan Konten wp search-replace 'old' 'new'8. Saya tidak akan merekomendasikan salah satu dari itu untuk sebagian besar situs, tetapi mereka dapat membantu menutupi celah untuk situs dengan sejumlah besar URL lawas, atau hingga solusi yang lebih permanen diterapkan Sebuah kata peringatan. Tak satu pun dari teknik ini secara ajaib akan menyebabkan sumber daya HTTPS muncul di tempat yang sebelumnya tidak ada. Yang dilakukan pengalihan hanyalah memastikan pengguna yang mencoba mengakses konten HTTP dialihkan ke konten HTTPS. Jika tidak ada konten HTTPS, pengguna tidak akan dilayani apa pun Mengarahkan Ulang Dengan NginxJika tumpukan server Anda menggunakan Nginx, Anda dapat mengalihkan dari HTTP ke HTTPS dengan menambahkan beberapa baris ke file wp search-replace 'old' 'new'9 Anda. Lokasi tepatnya mungkin berbeda tergantung pada apakah Anda menggunakan Nginx Plus atau Open Source, serta sistem paket yang digunakan untuk menginstal Nginx. Biasanya, itu terletak di wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made._0, wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made.1, atau wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made.2 Anda dapat menyalin dan menempelkan baris di bawah ini ke file konfigurasi Nginx Anda. Ingatlah untuk menukar semua instance wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made.3 dengan nama server Anda server { listen 80; server_name mdb.test www.mdb.test; return 301 https://mdb.test$request_uri; } Mengarahkan Ulang Dengan ApachePanel kontrol seperti cPanel dan Plesk memungkinkan Anda mengubah pengaturan yang digunakan Apache dan mengalihkan HTTP ke HTTPS. Anda juga dapat melakukannya dengan menambahkan beberapa baris ke file Apache wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made.4 Anda RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] Pastikan untuk menambahkan baris baru di luar modifikasi WordPress yang sudah ada di file wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made.4 Anda. Bagian ini ditandai dengan wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made._6 dan wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made.7. Setelah selesai, Anda harus memiliki sesuatu seperti ini RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # BEGIN WordPress RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress Mengarahkan Ulang Dengan PluginAnda juga dapat menggunakan plugin untuk memaksa HTTPS di situs WordPress Anda. Ada banyak opsi, di mana plugin SSL Benar-benar Sederhana tampaknya menjadi yang paling populer Praktik terbaiknya adalah memperbarui URL di database Anda, daripada mengandalkan plugin. Namun, plugin bisa sangat membantu sebelum Anda meluangkan waktu untuk melakukan perubahan permanen Mengarahkan Ulang Dengan Kebijakan Keamanan KontenMenetapkan Kebijakan Keamanan Konten (CSP) adalah cara yang berguna untuk mengelola konten campuran dalam skala besar, membuatnya sangat berguna untuk situs besar dengan banyak URL HTTP lawas. Untuk mengaktifkan fitur CSP, Anda harus menyertakan header wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made.8 dalam respons yang dikirim dari server Anda. Jika Anda tidak dapat mengakses tajuk, Anda juga dapat menyetelnya menggunakan tag wp search-replace ‘http://mdb.test’ ‘https://mdb.test’ --dry-run --report-changed-only --skip-columns=guid +------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_postmeta | meta_value | 3 | PHP | | wp_posts | post_content | 5 | SQL | +------------------+-----------------------+--------------+------+ Success: 8 replacements to be made.9 di bagian server { listen 80; server_name mdb.test www.mdb.test; return 301 https://mdb.test$request_uri; }0 halaman Jika Anda memiliki akses tajuk, itu hanya masalah mengirimkan arahan ini Content-Security-Policy: upgrade-insecure-requests Ini berfungsi dengan memaksa browser apa pun yang mengunjungi situs Anda untuk membuat permintaan aman alih-alih mengakses sumber daya yang menggunakan HTTP. Ini mencegah pengguna untuk melihat konten yang tidak aman Seperti disebutkan di atas, Anda juga dapat menggunakan tag ________18______9 di halaman server { listen 80; server_name mdb.test www.mdb.test; return 301 https://mdb.test$request_uri; }0 meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" Langkah selanjutnyaDengan pencarian dan penggantian selesai dan semua URL dalam database diperbarui, Anda dapat menghapus pembaruan yang Anda buat pada file Jika situs web tidak ditandai sebagai aman (biasanya dengan ikon gembok hijau di Chrome atau Firefox) oleh browser Anda, periksa apakah Anda masih memiliki peringatan konten campuran. Ini terjadi ketika halaman adalah HTTPS tetapi ada beberapa aset yang dimuat melalui HTTP Anda biasanya dapat menemukan peringatan semacam ini dengan menuju ke konsol javascript browser Anda dan mencari kesalahan apa pun tentang konten yang dimuat melalui HTTP Jika Anda mengalami kesalahan ini, penyebab paling umum adalah file tema atau plugin – terkadang tautan ke aset tema atau plugin dapat di-hardcode dan perlu diperbaiki MembungkusApakah Anda menjalankan situs untuk pertama kalinya atau mengalihkan situs yang ada ke HTTPS, alat yang tersedia semakin mempermudah penerapan sertifikat keamanan dan menjaga peringatan konten campuran Anda Apa alat favorit Anda untuk ini? Catatan ini telah diposting di WP Migrasi DB Pro, Alur Kerja dan menandai WP Migrasi DB Pro, Temukan & Ganti, WP-CLI, SSL, HTTPS, Ayo Enkripsi, Otoritas Sertifikat, WP Migrasi, peringatan konten campuran tentang PenulisMatt Shaw Pengembang WordPress SeniorMatt adalah pengembang plugin WordPress yang berlokasi di dekat Philadelphia, PA. Dia suka membuat alat baru yang luar biasa dengan PHP, JavaScript, dan apa pun yang kebetulan dia dapatkan @mattgrshaw
|