GNU/Linux >> Belajar Linux >  >> Linux

Pemikiran tentang SSL kompatibel menengah dengan sertifikat Lets Encrypt

Let's Encrypt adalah certificate authority (CA) gratis, otomatis, dan terbuka, dijalankan untuk kepentingan publik. Prinsip utama di balik Let's Encrypt adalah:

Prinsip utama di balik Let's Encrypt adalah Gratis:Siapa pun yang memiliki nama domain dapat menggunakan Let's Encrypt untuk mendapatkan sertifikat tepercaya tanpa biaya.

  • Gratis: Siapa pun yang memiliki nama domain dapat menggunakan Let's Encrypt untuk mendapatkan sertifikat tepercaya tanpa biaya.
  • Otomatis: Perangkat lunak yang berjalan di server web dapat berinteraksi dengan Let's Encrypt untuk mendapatkan sertifikat tanpa kesulitan, mengonfigurasinya dengan aman untuk digunakan, dan secara otomatis mengurus pembaruan.
  • Aman: Let's Encrypt akan berfungsi sebagai platform untuk memajukan praktik terbaik keamanan TLS, baik di sisi CA maupun dengan membantu operator situs mengamankan server mereka dengan benar.
  • Transparan: Semua sertifikat yang dikeluarkan atau dicabut akan dicatat secara publik dan tersedia untuk diperiksa oleh siapa saja.
  • Buka: Protokol penerbitan dan pembaruan otomatis akan dipublikasikan sebagai standar terbuka yang dapat diadopsi oleh orang lain.
  • Koperasi: Sama seperti protokol Internet yang mendasari itu sendiri, Let's Encrypt adalah upaya bersama untuk memberi manfaat bagi komunitas, di luar kendali organisasi mana pun.
    (sumber:https://letsencrypt.org/about/)

Pengantar

Pertama, kita harus menyebutkan tentang beberapa sisi gelap dari layanan Let's Encrypt. Betapapun hebatnya gagasan tentang otoritas sertifikat publik dan terbuka yang gratis, hal itu juga membawa banyak masalah bagi kami. Pengembang telah mencoba untuk membuat sistem mendapatkan sertifikat sesederhana mungkin, tetapi masih membutuhkan keterampilan yang lebih tinggi dari administrasi server. Oleh karena itu, banyak pengembang seperti dari ISPConfig (http://www.ispconfig.org/) telah mengimplementasikan solusi ini langsung ke dalam. Hal ini membuat penerapan dan pengawasan yang lebih efektif ke seluruh sistem menjadi lebih mudah dan fleksibel.

Komplikasi nyata

Banyak orang telah memutuskan untuk menerapkan Let's Encrypt ke situs produksi mereka. Saya menemukan ini masih merupakan ide yang sangat buruk untuk dilakukan tanpa sangat (tetapi sangat) berhati-hati. Let's Encrypt memberi Anda kebebasan tetapi juga membatasi Anda dalam menggunakan sertifikat dengan SHA-256 RSA Encryption. Dukungan untuk SHA-256 telah meningkat selama beberapa tahun terakhir. Sebagian besar browser, platform, klien email, dan perangkat seluler sudah mendukung SHA-256. Namun, beberapa sistem operasi lama seperti Windows XP pra-SP3 tidak mendukung enkripsi SHA-256. Banyak organisasi akan dapat mengonversi ke SHA-256 tanpa mengalami masalah pengalaman pengguna, dan banyak organisasi mungkin ingin mendorong pengguna yang menjalankan sistem yang lebih lama dan kurang aman untuk meningkatkan versi.

Dalam tutorial ini, kita akan menangani ketidakcocokan ini dengan cara yang sederhana, namun tetap buruk.

Prasyarat

  • Apache versi 2.4 dan lebih tinggi
  • OpenSSL versi 1.0.1e dan lebih tinggi
  • Apache mod_rewrite diaktifkan

Seluruh ide

Seperti yang disebutkan sebelumnya, masih ada perangkat yang tidak kompatibel dengan tanda tangan SHA-256 di Internet. Ketika saya dipaksa untuk menerapkan SSL ke beberapa situs web, saya harus memutuskan di antara dua opsi:

  1. Menggunakan Let's Encrypt memilikinya secara gratis tetapi tidak untuk semua.
  2. Membeli sertifikat dengan tanda tangan 128 bit.

Yah, masih opsi no. 1 adalah satu-satunya cara seperti yang dijanjikan kepada pelanggan sejak lama (:Tidak ada teori lagi:

Tidak ada lagi teori

Saya harap saya telah menjelaskan kebutuhan dan sekarang kami dapat menangani pemirsa situs web kami yang tidak didukung. Ada banyak orang yang menggunakan mesin Windows XP dengan SP2 dan lebih rendah (Ya, masih banyak). Jadi kita harus menyaring orang-orang ini.

Di “/etc/apache2/sites-available/your_domain.com.conf” tambahkan berikut ini di akhir file:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !(NT\ 5) [NC]
RewriteRule ^(.*) https:// your_domain.com [R]

RewriteCond mendapatkan string dari header http dari tamu yang mengakses halaman Anda. Anda cukup memeriksa milik Anda dan menemukan informasi lebih lanjut di sini: http://www.useragentstring.com/

Kondisi yang kami gunakan memberi tahu kami sesuatu seperti "jika string tidak mengandung 'NT 5'" maka RewriteRule mengeksekusi/menerapkan aturan pengalihan [R] ke https varian domain Anda, NT 5 adalah string versi OS untuk perangkat Windows XP .Jika Anda tidak menggunakan pengalihan ini, pengguna yang tidak kompatibel tidak akan dapat mengakses situs web https Anda.

Jika Anda tidak menggunakan pengalihan ini, pengguna yang tidak kompatibel tidak akan dapat mengakses situs web https Anda. Saya harus memperingatkan Anda tentang solusi ini yang tidak 100% sempurna karena beberapa

Saya harus memperingatkan Anda tentang solusi ini yang tidak 100% sempurna karena beberapa tamu tidak harus memberi Anda informasi yang relevan atau nyata. Saya telah bekerja dengan AWstats untuk mencari tahu tingkat sistem yang tidak dikenal yang mengakses halaman saya dan itu sekitar 1,3%, jadi cukup sedikit permintaan. Jika Anda ingin menangani sistem operasi yang tidak dikenal untuk memastikan kompatibilitasnya, Anda juga dapat menambahkan tidak dikenal dalam kondisi (RewriteCond %{HTTP_USER_AGENT} !(NT\ 5|unknown) [NC]).

Awstats

Setelah berhasil "tidak mengalihkan" pengunjung Anda yang tidak kompatibel (menjaga mereka di dunia http yang tidak aman), Anda dapat fokus pada sisi https.

Konfigurasi HTTPS

Sekarang kami menganggap Anda telah menetapkan sertifikat ke server web Anda dan juga mengaktifkannya.
Dalam file konfigurasi vhost Anda lagi, tambahkan berikut ini:

SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA 
SSLProtocol All -SSLv2 -SSLv3
SSLCompression off
SSLHonorCipherOrder On

CipherSuite yang digunakan di sini sedikit lebih lama dari biasanya. Ini untuk kompatibilitas yang lebih baik. Anda bisa mendapatkannya dari: https://cipherli.st/ atau https://mozilla.github.io/server-side-tls/ssl-config-generator/

Saya harus menyebutkan lagi, Anda tidak akan pernah mendapatkan konfigurasi yang sempurna untuk memenuhi kebijakan keamanan yang tinggi dan juga kompatibilitas. Anda harus menemukan kompromi.

Setelah menggunakan setelan ini, Anda dapat menguji konfigurasi dan kompatibilitas server di: https://www.ssllabs.com/ssltest/index.html

Anda akan menemukan daftar panjang perangkat yang kompatibel dan yang tidak kompatibel, juga beberapa informasi lebih lanjut untuk mengarahkan Anda ke solusi "sempurna" Anda sendiri.


Linux
  1. Memulai dengan Lets Encrypt SSL Certificates di Ubuntu

  2. Bagaimana mengelola Lets Encrypt sertifikat SSL/TLS dengan certbot

  3. Instal Let's Encrypt SSL di HAProxy

  1. Memulai dengan acme.sh Mari Enkripsi klien SSL

  2. Mengamankan ISPConfig 3.1 Dengan Lets Encrypt SSL Certificate Gratis

  3. Amankan Apache2 dengan Let's Encrypt SSL di Debian 10/11

  1. Amankan Nginx dengan Lets Encrypt di Ubuntu 20.04

  2. Amankan Apache dengan Lets Encrypt di Ubuntu 20.04

  3. Amankan Nginx dengan Lets Encrypt di CentOS 7