Penggunaan fungsi RW-R--R-- pada PHP

Secure Sockets Layer/Keamanan Lapisan Pengangkutan (SSL/TLS) membuat saluran terenkripsi antara server web dan klien web yang melindungi data dalam transit agar tidak dicuri. Tutorial ini menjelaskan cara menambahkan dukungan secara manual untuk SSL/TLS pada instans EC2 dengan Amazon Linux 2 dan server web Apache. Tutorial ini mengasumsikan bahwa Anda tidak menggunakan penyeimbang beban. Jika menggunakan Elastic Load Balancing, Anda dapat memilih untuk mengkonfigurasi SSL offload pada penyeimbang beban menggunakan sertifikat dari AWS Certificate Manager sebagai gantinya.

Untuk alasan historis, enkripsi web sering disebut hanya sebagai SSL. Meskipun peramban web masih mendukung SSL, protokol penerusnya, TLS, lebih aman dari serangan. Amazon Linux 2 menonaktifkan dukungan sisi server untuk semua versi SSL secara default. Badan standar keamananmenganggap TLS 1.0 untuk menjadi tidak aman. TLS 1.0 dan TLS 1.1 secara resmiusangMaret 2021. Tutorial ini berisi panduan yang secara eksklusif didasarkan pada pengaktifan TLS 1.2. TLS 1.3 diselesaikan pada tahun 2018 dan tersedia di Amazon Linux 2 selama pustaka TLS yang mendasarinya (OpenSSL dalam tutorial ini) didukung dan diaktifkan. Untuk informasi lebih lanjut tentang standar enkripsi yang diperbarui, lihat RFC 7568 dan RFC 8446.

Tutorial ini mengacu pada enkripsi web modern hanya sebagai TLS.

Prosedur ini ditujukan untuk digunakan dengan Amazon Linux 2. Kami juga berasumsi bahwa Anda mulai dengan instans Amazon EC2 baru. Jika Anda mencoba untuk mengatur instans EC2 menjalankan distribusi yang berbeda, atau sebuah instans yang menjalankan versi lama dari Amazon Linux 2, beberapa prosedur dalam tutorial ini mungkin tidak berfungsi. Untuk AMI Amazon Linux: lihatTutorial: Mengonfigurasi SSL/TLS dengan Amazon Linux AMI. Untuk Ubuntu, lihat dokumentasi komunitas berikut ini: Buka SSL di Ubuntu. Untuk Red Hat Enterprise Linux, lihat berikut ini: Menyiapkan Apache HTTP Web Server. Untuk distribusi lain, lihat dokumentasi spesifik mereka.

Sebagai alternatif, Anda dapat menggunakanAWS Certificate Manager(ACM)AWSNitro enclaves, yang merupakan aplikasi enclave yang memungkinkan Anda menggunakan sertifikat SSL/TLS publik dan pribadi dengan aplikasi web dan server yang berjalan di instans Amazon EC2 denganAWSNitro Enclences. Nitro Enclances adalah kemampuan Amazon EC2 yang memungkinkan pembuatan lingkungan komputasi terisolasi untuk melindungi dan memproses data yang sangat sensitif, seperti sertifikat SSL/TLS dan kunci pribadi.

ACM untuk Nitro Enclave bekerja dengannginxberjalan di instans Linux Amazon EC2 Anda untuk membuat kunci pribadi, mendistribusikan sertifikat dan kunci pribadi, dan untuk mengelola perpanjangan sertifikat.

Untuk menggunakan ACM untuk Nitro Enclave, Anda harus menggunakan instans Linux berkemampuan enclave.

Untuk informasi selengkapnya, lihatApaAWSNitro Enclences?danAWS Certificate Manageruntuk Nitro Enclencesdi dalamAWSPanduan Pengguna Nitro Enclances.

Daftar Isi

  • Prasyarat
  • Langkah 1: Aktifkan TLS di server
  • Langkah 2: Mendapatkan sertifikat yang ditandatangani CA
  • Langkah 3: Menguji dan memperkuat konfigurasi keamanan
  • Pecahkan masalah
  • Automasi sertifikat: Let's Encrypt dengan Certbot pada Amazon Linux 2

Prasyarat

Sebelum memulai tutorial ini, selesaikan langkah berikut:

  • Luncurkan instans Amazon Linux 2 yang didukung EBS. Untuk informasi selengkapnya, lihat Langkah 1: Luncurkan sebuah instans.

  • Konfigurasikan grup keamanan Anda agar instans Anda dapat menerima koneksi di port TCP berikut:

    • SSH (port 22)

    • HTTP (port 80)

    • HTTPS (port 443)

    Untuk informasi selengkapnya, lihat Memberikan otorisasi terhadap lalu lintas masuk untuk instans Linux Anda.

  • Instal server web Apache. Untuk step-by-step instruksi, lihatTutorial: Instal Server Web LAMP di Amazon Linux 2. Hanya paket httpd dan dependensinya yang diperlukan, jadi Anda dapat mengabaikan instruksi yang melibatkan PHP dan MariaDB.

  • Untuk mengidentifikasi dan mengautentikasi situs web, infrastruktur kunci publik (PKI) TLS mengandalkan Sistem Nama Domain (DNS). Untuk menggunakan instans EC2 guna menyelenggarakan situs web publik, Anda perlu mendaftarkan nama domain untuk server web atau mentransfer nama domain yang ada ke host Amazon EC2 Anda. Berbagai pendaftaran domain pihak ketiga dan layanan hosting DNS tersedia untuk ini, atau Anda dapat menggunakan Amazon Route 53.

Langkah 1: Aktifkan TLS di server

Pilihan: Selesaikan tutorial ini menggunakan otomatisasi

Untuk menyelesaikan tutorial ini menggunakanAWS Systems ManagerOtomatisasi alih-alih tugas-tugas berikut, jalankandokumen otomatisasi.

Prosedur ini membawa Anda melalui proses pengaturan TLS di Amazon Linux 2 dengan sertifikat digital yang ditandatangani sendiri.

Sertifikat yang ditandatangani sendiri dapat diterima untuk pengujian namun bukan produksi. Jika Anda menampilkan sertifikat yang ditandatangani sendiri ke internet, pengunjung ke situs Anda disambut oleh peringatan keamanan.

Untuk mengaktifkan TLS di server

  1. Sambungkan ke instans Anda dan konfirmasi bahwa Apache sedang berjalan.

    [ec2-user ~]$ sudo systemctl is-enabled httpd

    Jika nilai yang dikembalikan adalah tidak "diaktifkan," mulai Apache dan atur Apache untuk memulai setiap kali sistem booting.

    [ec2-user ~]$ sudo systemctl start httpd && sudo systemctl enable httpd
  2. Untuk memastikan bahwa semua paket perangkat lunak Anda telah diperbarui, lakukan pembaruan perangkat lunak cepat di instans Anda. Proses ini mungkin memerlukan waktu beberapa menit, tetapi penting untuk memastikan bahwa Anda memiliki pembaruan keamanan dan perbaikan bug terbaru.

    Opsi -y akan menginstal pembaruan tanpa meminta konfirmasi. Jika Anda ingin memeriksa pembaruan sebelum menginstal, Anda dapat menghapus opsi ini.

    [ec2-user ~]$ sudo yum update -y
  3. Setelah instans Anda diperbarui, tambahkan dukungan TLS dengan menginstal modul Apache mod_ssl.

    [ec2-user ~]$ sudo yum install -y mod_ssl

    Instans Anda sekarang memiliki file berikut yang Anda gunakan untuk mengonfigurasi server aman dan membuat sertifikat untuk pengujian:

    • /etc/httpd/conf.d/ssl.conf

      File konfigurasi untuk mod_ssl. File tersebut berisi arahan yang memberi tahu Apache tempat untuk menemukan kunci dan sertifikat enkripsi, versi protokol TLS yang akan dimungkinkan, dan cipher enkripsi yang akan diterima.

    • /etc/pki/tls/certs/make-dummy-cert

      Skrip untuk membuat sertifikat X.509 yang ditandatangani sendiri dan kunci pribadi untuk host server Anda. Sertifikat ini berguna untuk menguji apakah Apache telah diatur dengan benar untuk menggunakan TLS. Karena tidak menawarkan bukti identitas, sertifikat ini tidak boleh digunakan dalam produksi. Jika digunakan dalam produksi, sertifikat ini memicu peringatan di browser Web.

  4. Jalankan skrip untuk membuat sertifikat tiruan yang ditandatangani sendiri dan kunci untuk pengujian.

    [ec2-user ~]$ cd /etc/pki/tls/certs
    sudo ./make-dummy-cert localhost.crt

    Ini menghasilkan file baru localhost.crt dalam direktori /etc/pki/tls/certs/. Nama file yang ditentukan cocok dengan default yang ditetapkan dalam arahan SSLCertificateFile di /etc/httpd/conf.d/ssl.conf.

    File ini berisi sertifikat yang ditandatangani sendiri dan kunci privat sertifikat. Apache memerlukan sertifikat dan kunci dalam format PEM, yang terdiri dari karakter ASCII berenkode Base64 dibingkai dengan baris “BEGIN” dan “END” seperti dalam contoh singkat berikut.

    -----BEGIN PRIVATE KEY-----
    MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQD2KKx/8Zk94m1q
    3gQMZF9ZN66Ls19+3tHAgQ5Fpo9KJDhzLjOOCI8u1PTcGmAah5kEitCEc0wzmNeo
    BCl0wYR6G0rGaKtK9Dn7CuIjvubtUysVyQoMVPQ97ldeakHWeRMiEJFXg6kZZ0vr
    GvwnKoMh3DlK44D9dX7IDua2PlYx5+eroA+1Lqf32ZSaAO0bBIMIYTHigwbHMZoT
    ...
    56tE7THvH7vOEf4/iUOsIrEzaMaJ0mqkmY1A70qQGQKBgBF3H1qNRNHuyMcPODFs
    27hDzPDinrquSEvoZIggkDMlh2irTiipJ/GhkvTpoQlv0fK/VXw8vSgeaBuhwJvS
    LXU9HvYq0U6O4FgD3nAyB9hI0BE13r1HjUvbjT7moH+RhnNz6eqqdscCS09VtRAo
    4QQvAqOa8UheYeoXLdWcHaLP
    -----END PRIVATE KEY-----                    
    
    -----BEGIN CERTIFICATE-----
    MIIEazCCA1OgAwIBAgICWxQwDQYJKoZIhvcNAQELBQAwgbExCzAJBgNVBAYTAi0t
    MRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK
    DBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV
    bml0MRkwFwYDVQQDDBBpcC0xNzItMzEtMjAtMjM2MSQwIgYJKoZIhvcNAQkBFhVy
    ...
    z5rRUE/XzxRLBZOoWZpNWTXJkQ3uFYH6s/sBwtHpKKZMzOvDedREjNKAvk4ws6F0
    CuIjvubtUysVyQoMVPQ97ldeakHWeRMiEJFXg6kZZ0vrGvwnKoMh3DlK44D9dlU3
    WanXWehT6FiSZvB4sTEXXJN2jdw8g+sHGnZ8zCOsclknYhHrCVD2vnBlZJKSZvak
    3ZazhBxtQSukFMOnWPP2a0DMMFGYUHOd0BQE8sBJxg==
    -----END CERTIFICATE-----

    Nama dan ekstensi file mudah dan tidak memengaruhi fungsi. Misalnya, Anda dapat meminta sertifikat cert.crt, cert.pem, atau nama file lainnya, selama arahan terkait dalam file ssl.conf menggunakan nama yang sama.

    Ketika Anda mengganti file TLS default dengan file yang disesuaikan milik Anda sendiri, pastikan file tersebut dalam format PEM.

  5. Buka file /etc/httpd/conf.d/ssl.conf menggunakan editor teks favorit Anda (seperti vim or nano) dan komentari baris berikut, karena sertifikat tiruan yang ditandatangani sendiri juga berisi kunci. Jika Anda tidak memberi komentar pada baris ini sebelum menyelesaikan langkah berikutnya, layanan Apache gagal dimulai.

    SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
  6. Mulai Ulang Apache.

    [ec2-user ~]$ sudo systemctl restart httpd

    Pastikan bahwa port 443 TCP dapat diakses di instans EC2 Anda, seperti yang dijelaskan sebelumnya.

  7. Server web Apache Anda sekarang dapat mendukung HTTPS ( HTTP aman) melalui port 443. Uji web tersebut dengan memasukkan alamat IP atau nama domain instans EC2 Anda yang sepenuhnya memenuhi syarat ke dalam bilah URL browser dengan awalan https://.

    Karena Anda terhubung ke situs dengan sertifikat host yang ditandatangani sendiri dan tidak tepercaya, peramban Anda dapat menampilkan serangkaian peringatan keamanan. Abaikan peringatan tersebut dan lanjutkan ke situs.

    Jika halaman uji Apache default terbuka, berarti Anda telah berhasil mengonfigurasi TLS di server Anda. Semua data yang masuk antara browser dan server sekarang terenkripsi.

    Guna mencegah pengunjung situs menghadapi layar peringatan, Anda harus mendapatkan sertifikat tepercaya yang ditandatangani CA yang tidak hanya mengenkripsi, tetapi juga mengotentikasi Anda sebagai pemilik situs.

Langkah 2: Mendapatkan sertifikat yang ditandatangani CA

Anda dapat menggunakan proses berikut untuk mendapatkan sertifikat yang ditandatangani CA:

  • Membuat permintaan penandatanganan sertifikat (CSR) dari kunci privat

  • Kirim CSR ke otoritas sertifikasi (CA)

  • Dapatkan sertifikat host yang ditandatangani

  • Konfigurasikan Apache untuk menggunakan sertifikat

Sertifikat host TLS X.509 yang ditandatangani sendiri bersifat identik secara kriptologis dengan sertifikat yang ditandatangani CA. Perbedaannya bersifat sosial, bukan matematika. CA menjanjikan, setidaknya, untuk memvalidasi kepemilikan domain sebelum menerbitkan sertifikat kepada pemohon. Setiap peramban web memuat daftar CA tepercaya oleh vendor peramban untuk melakukan hal ini. Sertifikat X.509 utamanya terdiri dari kunci publik yang sesuai dengan kunci server privat Anda, dan tanda tangan oleh CA yang terhubung secara kriptografis dengan kunci publik. Ketika peramban terhubung ke server web melalui HTTPS, server menyajikan sertifikat untuk peramban untuk memeriksa daftar CA tepercaya. Jika penandatangan ada di daftar, atau dapat diakses melalui rantai kepercayaan yang terdiri dari penanda tangan tepercaya lainnya, peramban menegosiasikan saluran data terenkripsi cepat dengan server dan memuat halaman.

Sertifikat umumnya memerlukan biaya karena tenaga kerja yang terlibat dalam memvalidasi permintaan tersebut, jadi tidak masalah untuk mempertimbangkan berbagai kemungkinan. Beberapa CA menawarkan sertifikat tingkat dasar secara cuma-cuma. Hal yang paling menonjol dari CA adalah proyek Let's Encrypt, yang juga mendukung otomatisasi pembuatan sertifikat dan proses pembaruan. Untuk informasi selengkapnya tentang penggunaan Let's Encrypt sebagai CA Anda, lihat Automasi sertifikat: Let's Encrypt dengan Certbot pada Amazon Linux 2.

Jika Anda berencana untuk menawarkan layanan kelas komersial, AWS Certificate Manager adalah pilihan yang baik.

Yang mendasari sertifikat host adalah kuncinya. Sejak 2019, pemerintah dan kelompok industri merekomendasikan penggunaan ukuran kunci minimum (modulus) sebesar 2048 bit untuk kunci RSA yang ditujukan untuk melindungi dokumen, hingga tahun 2030. Ukuran modulus default yang dihasilkan oleh OpenSSL di Amazon Linux 2 adalah 2048 bit, yang dapat digunakan dalam sertifikat yang ditandatangani CA. Dalam prosedur berikut, langkah opsional yang disediakan bagi mereka yang menginginkan kunci yang disesuaikan, misalnya, adalah satu dengan modulus yang lebih besar atau menggunakan algoritme enkripsi berbeda.

Instruksi untuk memperoleh sertifikat host yang ditandatangani CA ini tidak berfungsi kecuali jika Anda memiliki domain DNS yang terdaftar dan dihosting.

Untuk mendapatkan sertifikat yang ditandatangani CA

  1. Sambungkan ke instans Anda dan navigasi ke /etc/pki/tls/private/. Ini adalah direktori tempat Anda menyimpan kunci privat server untuk TLS. Jika Anda memilih untuk menggunakan kunci host yang ada untuk membuat CSR, lewati ke Langkah 3.

  2. (Opsional) Buat kunci privat baru. Berikut ini adalah beberapa contoh konfigurasi kunci. Setiap kunci yang dihasilkan dapat berfungsi dengan server web Anda, tetapi memiliki tingkat dan jenis keamanan yang berbeda-beda dalam penerapannya.

    • Contoh 1: Buat kunci host RSA default. File yang dihasilkan, custom.key, adalah kunci pribadi RSA 2048-bit.

      [ec2-user ~]$ sudo openssl genrsa -out custom.key
    • Contoh 2: Buat kunci RSA yang lebih kuat dengan modulus yang lebih besar. File yang dihasilkan, custom.key, adalah kunci pribadi RSA 4096-bit.

      [ec2-user ~]$ sudo openssl genrsa -out custom.key 4096
    • Contoh 3: Buat kunci RSA yang dienkripsi 4096-bit dengan perlindungan kata sandi. File yang dihasilkan, custom.key, adalah kunci pribadi RSA 4096-bit yang dienkripsi dengan AES-128.

      Mengenkripsi kunci akan memberikan keamanan yang lebih besar, tetapi karena kunci terenkripsi memerlukan kata sandi, layanan yang tergantung pada kata sandi tersebut tidak dapat dimulai secara otomatis. Setiap kali menggunakan kunci ini, Anda harus memberikan kata sandi (dalam contoh sebelumnya, “abcde12345”) melalui koneksi SSH.

      [ec2-user ~]$ sudo openssl genrsa -aes128 -passout pass:abcde12345 -out custom.key 4096
    • Contoh 4: Buat kunci menggunakan cipher non-RSA. Kriptografi RSA dapat menjadi cukup lambat karena ukuran kunci publiknya, yang didasarkan pada produk dua angka utama yang besar. Namun, kunci untuk TLS dapat dibuat yang menggunakan cipher non-RSA. Kunci-kunci berdasarkan matematika kurva eliptik ukurannya lebih kecil dan secara komputasi lebih cepat ketika memberikan tingkat keamanan yang setara.

      [ec2-user ~]$ sudo openssl ecparam -name prime256v1 -out custom.key -genkey

      Hasilnya adalah kunci privat kurva eliptik 256-bit menggunakan prime256v1, "kurva yang diberi nama" yang didukung OpenSSL. Kekuatan kriptografisnya sedikit lebih besar dari kunci RSA 2048-bit, menurut NIST .

      Tidak semua CA memberikan tingkat dukungan yang sama untuk elliptic-curve-based kunci seperti untuk kunci RSA.

    Pastikan bahwa kunci privat baru tersebut memiliki izin dan kepemilikan yang sangat ketat (pemilik=root, grup=root, baca/tulis untuk pemilik saja). Perintah akan seperti yang ditunjukkan dalam contoh berikut.

    [ec2-user ~]$ sudo chown root:root custom.key
    [ec2-user ~]$ sudo chmod 600 custom.key
    [ec2-user ~]$ ls -al custom.key

    Perintah sebelumnya akan memberikan hasil berikut.

    -rw------- root root custom.key

    Setelah membuat dan mengonfigurasikan kunci yang memuaskan, Anda dapat membuat CSR.

  3. Buat CSR dengan menggunakan kunci yang Anda kehendaki. Contoh berikut menggunakan custom.key.

    [ec2-user ~]$ sudo openssl req -new -key custom.key -out csr.pem

    OpenSSL membuka dialog dan meminta informasi yang ditampilkan dalam tabel berikut. Semua kolom kecuali Nama Umum adalah opsional untuk sertifikat host dasar yang divalidasi domain.

    NamaDeskripsiContoh
    Nama Negara Singkatan ISO dua huruf untuk negara Anda. AS (=Amerika Serikat)
    Nama Negara Bagian atau Provinsi Nama negara bagian atau provinsi tempat organisasi Anda berada. Nama ini tidak boleh disingkat. Washington
    Nama Lokal Lokasi organisasi Anda, contohnya suatu kota. Seattle
    Nama Organisasi Nama lengkap legal organisasi Anda. Jangan menyingkat nama organisasi Anda. Contoh Perusahaan
    Nama Unit Organisasi Informasi tambahan tentang organisasi, jika ada. Contoh Departemen
    Nama Umum

    Nilai ini harus sama persis dengan alamat web yang Anda harapkan akan dimasukkan pengguna ke peramban. Biasanya, ini berarti nama domain dengan nama host atau alias diawali dalam formulir www.example.com. Dalam pengujian dengan sertifikat yang ditandatangani sendiri dan tanpa resolusi DNS, nama umum dapat terdiri dari nama host saja. CA juga menawarkan sertifikat yang lebih mahal yang menerima nama wild-card seperti *.example.com.

    www.example.com
    Alamat Email Alamat email administrator server.

    Terakhir, OpenSSL meminta kata sandi tantangan opsional dari Anda. Kata sandi ini hanya berlaku untuk CSR dan transaksi antara Anda dan CA Anda, maka ikutilah rekomendasi CA tentang hal ini dan bidang pilihan lainnya, nama perusahaan opsional. Kata sandi tantangan CSR tidak berpengaruh pada operasi server.

    File yang dihasilkan csr.pem berisi kunci publik, tanda tangan digital kunci publik Anda, dan metadata yang Anda masukkan.

  4. Kirimkan CSR ke CA. Hal ini biasanya mencakup membuka file CSR Anda dalam sebuah editor teks dan menyalin konten ke dalam bentuk web. Pada saat ini, Anda mungkin diminta untuk memberi satu atau lebih nama alternatif subjek (SAN) untuk ditempatkan pada sertifikat. Jika www.example.com adalah nama umum, example.com akan menjadi SAN yang baik, dan sebaliknya. Pengunjung ke situs Anda yang memasukkan nama-nama ini akan melihat koneksi tanpa kesalahan. Jika formulir web CA Anda mengizinkannya, masukkan nama umum dalam daftar SAN. Beberapa CA memasukkannya secara otomatis.

    Setelah permintaan Anda disetujui, Anda menerima sertifikat host baru yang ditandatangani oleh CA. Anda mungkin juga diminta mengunduh file sertifikat menengah yang berisi sertifikat tambahan yang diperlukan untuk melengkapi rantai kepercayaan CA.

    CA Anda mungkin mengirimi Anda file dalam beberapa format yang dimaksudkan untuk berbagai tujuan. Untuk tutorial ini, Anda hanya dapat menggunakan file sertifikat dalam format PEM, yang biasanya (tetapi tidak selalu) ditandai dengan ekstensi file .pem atau .crt. Jika Anda tidak yakin file mana yang akan digunakan, buka file dengan editor teks dan temukan yang berisi satu atau beberapa blok yang dimulai dengan baris berikut.

    - - - - -BEGIN CERTIFICATE - - - - - 

    File juga harus berakhir dengan baris berikut.

    - - - -END CERTIFICATE - - - - -

    Anda juga dapat menguji file pada baris perintah seperti yang ditunjukkan pada hal berikut.

    [ec2-user certs]$ openssl x509 -in certificate.crt -text

    Verifikasi apakah baris ini muncul di file. Jangan gunakan file yang diakhiri dengan .p7b, .p7c, atau ekstensi file serupa.

  5. Letakkan sertifikat baru yang ditandatangani CA dan setiap sertifikat menengah di direktori /etc/pki/tls/certs.

    Ada beberapa cara untuk mengunggah sertifikat baru Anda ke instans EC2 Anda, tetapi cara yang paling sederhana dan informatif adalah dengan membuka teks editor (misalnya, vi, nano, atau notepad) di komputer lokal dan instans Anda, lalu menyalin dan menempelkan konten file di antaranya. Anda memerlukan izin [sudo] root ketika melakukan operasi ini pada instans EC2. Dengan cara ini, Anda dapat segera melihat apakah ada masalah perizinan atau jalur. Namun, berhati-hatilah untuk tidak menambahkan baris tambahan saat menyalin konten, atau untuk mengubahnya dengan cara apa pun.

    Dari dalam direktori /etc/pki/tls/certs, periksa apakah pengaturan kepemilikan, grup, dan izin file cocok dengan default Amazon Linux 2 yang sangat ketat (pemilik=root, grup=root, baca/tulis hanya untuk pemilik). Contoh berikut menunjukkan perintah yang dapat digunakan.

    [ec2-user certs]$ sudo chown root:root custom.crt
    [ec2-user certs]$ sudo chmod 600 custom.crt
    [ec2-user certs]$ ls -al custom.crt

    Perintah ini akan memberikan hasil berikut.

    -rw------- root root custom.crt

    Izin untuk file sertifikat menengah tidak terlalu ketat (pemilik=root, grup=root, pemilik dapat menulis, grup dapat membaca, dunia dapat membaca). Contoh berikut menunjukkan perintah yang dapat digunakan.

    [ec2-user certs]$ sudo chown root:root intermediate.crt
    [ec2-user certs]$ sudo chmod 644 intermediate.crt
    [ec2-user certs]$ ls -al intermediate.crt

    Perintah ini akan memberikan hasil berikut.

    -rw-r--r-- root root intermediate.crt
  6. Tempatkan kunci privat yang Anda gunakan untuk membuat CSR di direktori /etc/pki/tls/private/.

    Ada beberapa cara untuk mengunggah kunci khusus Anda ke instans EC2, tetapi cara yang paling sederhana dan informatif adalah dengan membuka teks editor (misalnya, vi, nano, atau notepad) di komputer lokal dan instans Anda, lalu menyalin dan menempelkan konten file di antaranya. Anda memerlukan izin [sudo] root ketika melakukan operasi ini pada instans EC2. Dengan cara ini, Anda dapat segera melihat apakah ada masalah perizinan atau jalur. Namun, berhati-hatilah untuk tidak menambahkan baris tambahan saat menyalin konten, atau untuk mengubahnya dengan cara apa pun.

    Dari dalam direktori /etc/pki/tls/private, gunakan perintah berikut untuk memverifikasi apakah pengaturan kepemilikan, grup, dan izin file cocok dengan default Amazon Linux 2 yang sangat ketat (pemilik=root, grup=root, baca/tulis hanya untuk pemilik).

    [ec2-user private]$ sudo chown root:root custom.key
    [ec2-user private]$ sudo chmod 600 custom.key
    [ec2-user private]$ ls -al custom.key

    Perintah ini akan memberikan hasil berikut.

    -rw------- root root custom.key
  7. Edit /etc/httpd/conf.d/ssl.conf untuk mencerminkan sertifikat dan file kunci baru Anda.

    1. Berikan jalur dan nama file sertifikat host yang ditandatangani CA dalam arahan SSLCertificateFile Apache:

      SSLCertificateFile /etc/pki/tls/certs/custom.crt
    2. Jika Anda menerima file sertifikat menengah (intermediate.crt dalam contoh ini), berikan jalur dan nama file menggunakan arahan SSLCACertificateFileApache:

      SSLCACertificateFile /etc/pki/tls/certs/intermediate.crt

      Beberapa CA menggabungkan sertifikat host dan sertifikat menengah dalam satu file, sehingga arahan SSLCACertificateFile menjadi tidak diperlukan. Baca petunjuk yang diberikan oleh CA Anda.

    3. Berikan jalur dan nama file kunci privat (custom.key dalam contoh ini) dalam arahan SSLCertificateKeyFile Apache:

      SSLCertificateKeyFile /etc/pki/tls/private/custom.key
  8. Simpan /etc/httpd/conf.d/ssl.conf dan mulai ulang Apache.

    [ec2-user ~]$ sudo systemctl restart httpd
  9. Uji server Anda dengan memasukkan nama domain Anda ke dalam bar peramban URL browser dengan awalan https://. Peramban Anda harus memuat halaman uji melalui HTTPS tanpa menghasilkan kesalahan.

Langkah 3: Menguji dan memperkuat konfigurasi keamanan

Setelah TLS Anda beroperasi dan terbuka ke publik, Anda harus menguji seberapa kuat TLS itu sesungguhnya. Hal ini mudah dilakukan menggunakan layanan daring seperti Qualys SSL Labs, yang melakukan analisis yang bebas dan menyeluruh atas pengaturan keamanan Anda. Berdasarkan hasilnya, Anda dapat memutuskan untuk memperkuat konfigurasi keamanan default dengan mengendalikan protokol mana yang diterima, cipher mana yang lebih disukai, dan yang mana yang tidak Anda sertakan. Untuk informasi lebih lanjut, lihat cara Qualys merumuskan nilainya.

Pengujian di dunia nyata sangat penting untuk keamanan server Anda. Kesalahan konfigurasi kecil dapat menyebabkan pelanggaran keamanan serius dan hilangnya data. Karena praktik keamanan yang direkomendasikan terus berubah sebagai respons terhadap penelitian dan ancaman yang muncul, audit keamanan secara berkala sangat penting bagi administrasi server yang baik.

Pada situs Qualys SSL Labs, masukkan nama domain server Anda yang sepenuhnya memenuhi syarat, dalam formulir www.example.com. Setelah sekitar dua menit, Anda menerima nilai (dari A sampai F) untuk situs Anda dan detail perincian dari temuan. Tabel berikut merangkum laporan untuk domain dengan pengaturan yang identik dengan konfigurasi Apache default di Amazon Linux 2, dan dengan sertifikat Certbot default.

Penilaian secara keseluruhan B
Sertifikat 100%
Dukungan protokol 95%
Pertukaran kunci 70%
Kekuatan cipher 90%

Meskipun gambaran umum menunjukkan bahwa konfigurasi sebagian besar baik, laporan terperinci menunjukkan beberapa potensi masalah, yang tercantum dalam urutan kepelikan:

Cipher RC4 didukung untuk digunakan oleh peramban tertentu yang lebih lama. Cipher adalah inti matematis dari algoritme enkripsi. RC4, cipher cepat yang digunakan untuk mengenkripsi aliran data TLS, dikenal memiliki beberapa kelemahan serius. Kecuali jika Anda memiliki alasan yang sangat bagus untuk mendukung peramban terdahulu, Anda harus menonaktifkan cipher ini.

Versi TLS lama dapat didukung. Konfigurasi ini mendukung TLS 1.0 (sudah tidak digunakan) dan TLS 1.1 (pada jalur menuju deprekasi). Hanya TLS 1.2 yang telah direkomendasikan sejak 2018.

Forward secrecy tidak sepenuhnya didukung. Forward secrecy adalah fitur algoritme yang mengenkripsi menggunakan kunci sesi sementara (ephemeral) yang berasal dari kunci privat. Artinya, dalam praktiknya, penyerang tidak dapat mendekripsi data HTTPS bahkan jika mereka memiliki kunci privat jangka panjang server web.

Untuk mengoreksi dan memperkuat konfigurasi TLS untuk masa mendatang

  1. Buka file konfigurasi /etc/httpd/conf.d/ssl.conf dalam editor teks dan berikan komentar pada baris berikut dengan memasukkan “#” di awal baris.

    #SSLProtocol all -SSLv3
  2. Tambahkan arahan berikut:

    #SSLProtocol all -SSLv3
    SSLProtocol -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2

    Arahan ini secara eksplisit menonaktifkan versi SSL 2 dan 3, serta TLS versi 1.0 dan 1.1. Server sekarang menolak untuk menerima koneksi terenkripsi menggunakan apa pun kecuali TLS 1.2. Kata-kata yang bertele-tele dalam arahan, bagi pembaca manusia, justru mengungkapkan dengan lebih jelas tentang apa yang akan dilakukan server sesuai konfigurasinya.

    Menonaktifkan TLS versi 1.0 dan 1.1 dengan cara ini akan memblokir sebagian kecil browser web lama dari akses ke situs Anda.

Untuk mengubah daftar cipher yang diperbolehkan

  1. Dalam file konfigurasi /etc/httpd/conf.d/ssl.conf, temukan bagian dengan arahan SSLCipherSuite dan berikan komentar pada baris yang sudah ada dengan memasukkan “#” di awal baris.

    #SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
  2. Tentukan suite cipher yang eksplisit dan urutan cipher yang memprioritaskan forward secrecy dan menghindari cipher yang tidak aman. Arahan SSLCipherSuite yang digunakan di sini didasarkan pada output dari Mozilla SSL Configuration Generator, yang menyesuaikan konfigurasi TLS dengan perangkat lunak tertentu yang berjalan di server Anda. (Untuk informasi lebih lanjut, lihat sumber daya Mozilla yang berguna Keamanan/Server sisi TLS.) Pertama, tentukan Apache Anda dan versi OpenSSL dengan menggunakan output dari perintah berikut.

    [ec2-user ~]$ yum list installed | grep httpd
    
    [ec2-user ~]$ yum list installed | grep openssl

    Misalnya, jika informasi yang dikembalikan adalah Apache 2.4.34 dan 1.0.2, kita memasukkannya ke generator. Jika Anda memilih model kompatibilitas "modern", ini menciptakan arahan SSLCipherSuite yang secara agresif menegakkan keamanan namun tetap bekerja di sebagian besar peramban. Jika perangkat lunak Anda tidak mendukung konfigurasi modern, Anda dapat memperbarui perangkat lunak atau memilih konfigurasi "menengah".

    SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:
    ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:
    ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256

    Cipher yang dipilih memiliki ECDHE dalam nama mereka, singkatan untuk Elliptic Curve Diffie-Hellman Ephemeral . Istilah ephemeral menunjukkan forward secrecy. Sebagai produk sampingan, cipher ini tidak mendukung RC4.

    Kami merekomendasikan Anda menggunakan daftar cipher secara eksplisit alih-alih mengandalkan arahan yang ringkas atau default yang kontennya tidak dapat dilihat.

    Salin arahan yang dihasilkan ke /etc/httpd/conf.d/ssl.conf.

    Meskipun ditampilkan di sini pada beberapa baris untuk keterbacaan, arahan harus pada satu baris saat disalin ke /etc/httpd/conf.d/ssl.conf, dengan hanya tanda titik dua (tanpa spasi) di antara nama-nama cipher.

  3. Terakhir, batalkan komentar pada baris berikut dengan menghapus “#” di awal baris.

    #SSLHonorCipherOrder on

    Arahan ini memaksa server untuk lebih memilih cipher berperingkat tinggi, termasuk (dalam hal ini) cipher yang mendukung forward secrecy. Dengan arahan yang diaktifkan ini, server mencoba membangun koneksi aman yang kuat sebelum kembali ke ciphers yang diizinkan dengan keamanan lebih rendah.

Setelah menyelesaikan kedua prosedur ini, simpan perubahan ke /etc/httpd/conf.d/ssl.conf dan mulai ulang Apache.

Jika Anda menguji domain lagi di Qualys SSL Labs, Anda akan melihat bahwa kelemahan RC4 dan peringatan lainnya hilang dan rangkumannya terlihat seperti berikut.

Penilaian secara keseluruhan A
Sertifikat 100%
Dukungan protokol 100%
Pertukaran kunci 90%
Kekuatan cipher 90%

Setiap pembaruan untuk OpenSSL memperkenalkan cipher baru dan menghapus dukungan untuk cipher lama. Perbarui instans EC2 Amazon Linux 2 up-to-date, perhatikan pengumuman keamanan dariOpenSSL, dan nantikan pemberitahuan laporan eksploitasi keamanan baru dalam pers teknis.

Pecahkan masalah

  • Server web My Apache tidak mulai kecuali jika saya memasukkan kata sandi

    Ini adalah perkiraan perilaku jika Anda menginstal kunci server privat yang dienkripsi dan dilindungi dengan kata sandi.

    Anda dapat menghapus persyaratan enkripsi dan kata sandi dari kunci. Dengan asumsi bahwa Anda memiliki kunci RSA terenkripsi privat yang disebut custom.key dalam direktori default, dan kata sandi di sana adalah abcde12345, jalankan perintah berikut pada instans EC2 Anda untuk membuat versi kunci yang tidak terenkripsi.

    [ec2-user ~]$ cd /etc/pki/tls/private/
    [ec2-user private]$ sudo cp custom.key custom.key.bak
    [ec2-user private]$ sudo openssl rsa -in custom.key -passin pass:abcde12345 -out custom.key.nocrypt 
    [ec2-user private]$ sudo mv custom.key.nocrypt custom.key
    [ec2-user private]$ sudo chown root:root custom.key
    [ec2-user private]$ sudo chmod 600 custom.key
    [ec2-user private]$ sudo systemctl restart httpd

    Apache sekarang akan mulai tanpa meminta kata sandi Anda.

  • Saya mendapatkan kesalahan saat menjalankan sudo yum install -y mod_ssl.

    Saat menginstal paket yang diperlukan untuk SSL, Anda mungkin melihat kesalahan yang serupa dengan yang berikut.

    Error: httpd24-tools conflicts with httpd-tools-2.2.34-1.16.amzn1.x86_64
    Error: httpd24 conflicts with httpd-2.2.34-1.16.amzn1.x86_64

    Ini biasanya berarti bahwa instans EC2 Anda tidak menjalankan Amazon Linux 2. Tutorial ini hanya mendukung instans yang baru dibuat dari Amazon Linux 2 AMI resmi.

Automasi sertifikat: Let's Encrypt dengan Certbot pada Amazon Linux 2

Mari Enkripsi sertifikat DST Root CA X3 yang ditandatangani silangkedaluwarsadi atas30 September 2021. Hal ini dapat menyebabkan koneksi Let's Encrypt gagal dengan OpenSSL 1.0.x pada CentOS/RHEL7 dan Amazon Linux. Langkah-langkah remediasi dapat ditemukankemari, atau Anda dapat mengikuti salah satu solusi manual yang ditemukan diHalaman blog OpenSSL.

Instruksi untuk memperoleh sertifikat host Let's Encrypt ini tidak berfungsi kecuali jika Anda memiliki domain DNS yang terdaftar dan dihosting. Instruksi ini tidak berfungsi dengan nama host DNS publik yang ditetapkan olehAWS.

Otoritas sertifikat Let's Encrypt adalah inti dari upaya Electronic Frontier Foundation (EFF) untuk mengenkripsi seluruh internet. Sejalan dengan tujuan tersebut, sertifikat host Let's Encrypt dirancang untuk dibuat, divalidasi, diinstal, dan dipertahankan dengan intervensi manusia secara terbatas. Aspek otomatis dari manajemen sertifikat dijalankan oleh agen perangkat lunak yang berjalan di server web Anda. Setelah diinstal dan dikonfigurasi, agen tersebut berkomunikasi secara aman dengan Let's Encrypt dan melakukan tugas administratif di Apache dan sistem manajemen kunci. Tutorial ini menggunakan agen Certbot bebas karena memungkinkan Anda untuk menyediakan kunci enkripsi khusus sebagai dasar untuk sertifikat Anda, atau memungkinkan agen itu sendiri untuk membuat kunci berdasarkan default-nya. Anda juga dapat mengonfigurasi Certbot untuk memperbarui sertifikat Anda secara berkala tanpa interaksi manusia, seperti yang dijelaskan di Untuk mengotomatiskan Certbot. Untuk informasi lebih lanjut, tanyakan tentang Panduan Pengguna dan halaman man pada Certbot.

Certbot tidak didukung secara resmi di Amazon Linux 2, tetapi tersedia untuk diunduh dan berfungsi dengan benar saat diinstal. Kami merekomendasikan agar Anda membuat cadangan berikut untuk melindungi data Anda dan menghindari ketidaknyamanan:

  • Sebelum Anda mulai, ambil snapshot volume akar Amazon EBS Anda. Ini memungkinkan Anda mengembalikan kondisi awal instans EC2 Anda. Untuk informasi tentang pembuatan snapshot EBS, lihat Buat snapshot Amazon EBS.

  • Prosedur di bawah ini mengharuskan Anda untuk mengedit file httpd.conf, yang mengendalikan operasi Apache. Certbot menerapkan perubahan otomatisnya sendiri pada file ini dan file konfigurasi lainnya. Buat salinan cadangan untuk seluruh direktori /etc/httpd jika Anda mengembalikannya.

Bersiap menginstal

Selesaikan prosedur berikut sebelum Anda menginstal Certbot.

  1. Unduh paket repositori Extra Packages for Enterprise Linux (EPEL) 7. Paket ini diperlukan untuk memasok dependensi yang diperlukan oleh Certbot.

    1. Navigasi ke direktori beranda Anda (/home/ec2-user). Unduh EPEL dengan perintah berikut.

      [ec2-user ~]$ sudo wget -r --no-parent -A 'epel-release-*.rpm' https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/
    2. Instal paket repositori seperti yang ditunjukkan dalam perintah berikut.

      [ec2-user ~]$ sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm
    3. Aktifkan EPEL seperti yang ditunjukkan dalam perintah berikut.

      [ec2-user ~]$ sudo yum-config-manager --enable epel*

      Anda dapat mengonfirmasi bahwa EPEL diaktifkan dengan perintah berikut.

      [ec2-user ~]$ sudo yum repolist all

      Perintah tersebut akan mengembalikan informasi yang serupa dengan yang berikut ini:

      [ec2-user ~]$ 
      ...
      epel/x86_64                          Extra Packages for Enterprise Linux 7 - x86_64                               enabled: 12949+175
      epel-debuginfo/x86_64                Extra Packages for Enterprise Linux 7 - x86_64 - Debug                       enabled:      2890
      epel-source/x86_64                   Extra Packages for Enterprise Linux 7 - x86_64 - Source                      enabled:         0
      epel-testing/x86_64                  Extra Packages for Enterprise Linux 7 - Testing - x86_64                     enabled:    778+12
      epel-testing-debuginfo/x86_64        Extra Packages for Enterprise Linux 7 - Testing - x86_64 - Debug             enabled:       107
      epel-testing-source/x86_64           Extra Packages for Enterprise Linux 7 - Testing - x86_64 - Source            enabled:         0
      ...
  2. Mengedit file konfigurasi Apache utama, /etc/httpd/conf/httpd.conf. Temukan instruksi "Listen 80" dan tambahkan baris berikut sesudahnya dengan mengganti nama domain contoh dengan Common Name and Subject Alternative Name (SAN) aktual.

    <VirtualHost *:80>
        DocumentRoot "/var/www/html"
        ServerName "example.com"
        ServerAlias "www.example.com"
    </VirtualHost>

    Simpan file dan mulai ulang Apache.

    [ec2-user ~]$ sudo systemctl restart httpd

Instal dan jalankan Certbot

Prosedur ini didasarkan pada dokumentasi EFF untuk menginstal Certbot di Fedora dan RHEL 7. Prosedur ini menjelaskan penggunaan default Certbot, yang menghasilkan sertifikat berdasarkan kunci RSA 2048-bit.

  1. Instal repo Amazon Extras untuk epel.

    [ec2-user ~]$ sudo amazon-linux-extras install epel -y
  2. Pasang paket dan dependensi Certbot menggunakan perintah berikut.

    [ec2-user ~]$ sudo yum install -y certbot python2-certbot-apache
  3. Jalankan Certbot.

    [ec2-user ~]$ sudo certbot
  4. Pada prompt "Masukkan alamat email (digunakan untuk pemberitahuan pembaruan dan keamanan mendesak)," masukkan alamat kontak dan tekan Enter.

  5. Setujui Ketentuan Layanan Let's Encrypt pada prompt. Masukkan "A" dan tekan Enter untuk melanjutkan.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Please read the Terms of Service at
    https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
    agree in order to register with the ACME server at
    https://acme-v02.api.letsencrypt.org/directory
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (A)gree/(C)ancel: A
  6. Pada otorisasi untuk EFF untuk memasukkan Anda di milis mereka, masukkan "Y" atau "N" dan tekan Enter.

  7. Certbot menampilkan Common Name and Subject Alternative Name (SAN) yang Anda berikan dalam VirtualHost blok.

    Which names would you like to activate HTTPS for?
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1: example.com
    2: www.example.com
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Select the appropriate numbers separated by commas and/or spaces, or leave input
    blank to select all options shown (Enter 'c' to cancel):

    Kosongkan input dan tekan Enter.

  8. Certbot menampilkan output berikut saat certbot membuat sertifikat dan mengonfigurasi Apache. Certbot kemudian meminta Anda untuk mengalihkan kueri HTTP ke HTTPS.

    Obtaining a new certificate
    Performing the following challenges:
    http-01 challenge for example.com
    http-01 challenge for www.example.com
    Waiting for verification...
    Cleaning up challenges
    Created an SSL vhost at /etc/httpd/conf/httpd-le-ssl.conf
    Deploying Certificate for example.com to VirtualHost /etc/httpd/conf/httpd-le-ssl.conf
    Enabling site /etc/httpd/conf/httpd-le-ssl.conf by adding Include to root configuration
    Deploying Certificate for www.example.com to VirtualHost /etc/httpd/conf/httpd-le-ssl.conf
    
    Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1: No redirect - Make no further changes to the webserver configuration.
    2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
    new sites, or if you're confident your site works on HTTPS. You can undo this
    change by editing your web server's configuration.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

    Untuk mengizinkan pengunjung terhubung ke server Anda melalui HTTP tak terenkripsi, masukkan "1". Jika Anda hanya ingin menerima koneksi terenkripsi melalui HTTPS, masukkan "2". Tekan Enter untuk mengirim pilihan Anda.

  9. Certbot menyelesaikan konfigurasi Apache dan melaporkan keberhasilan dan informasi lainnya.

    Congratulations! You have successfully enabled https://example.com and
    https://www.example.com
    
    You should test your configuration at:
    https://www.ssllabs.com/ssltest/analyze.html?d=example.com
    https://www.ssllabs.com/ssltest/analyze.html?d=www.example.com
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at:
       /etc/letsencrypt/live/certbot.oneeyedman.net/fullchain.pem
       Your key file has been saved at:
       /etc/letsencrypt/live/certbot.oneeyedman.net/privkey.pem
       Your cert will expire on 2019-08-01. To obtain a new or tweaked
       version of this certificate in the future, simply run certbot again
       with the "certonly" option. To non-interactively renew *all* of
       your certificates, run "certbot renew"
     - Your account credentials have been saved in your Certbot
       configuration directory at /etc/letsencrypt. You should make a
       secure backup of this folder now. This configuration directory will
       also contain certificates and private keys obtained by Certbot so
       making regular backups of this folder is ideal.
  10. Setelah Anda menyelesaikan penginstalan, uji dan optimalkan keamanan server Anda seperti yang dijelaskan di Langkah 3: Menguji dan memperkuat konfigurasi keamanan.

Konfigurasi pembaruan sertifikat otomatis

Certbot dirancang untuk menjadi bagian yang tidak terlihat dan tahan kesalahan pada sistem server Anda. Secara default, Certbot akan menghasilkan sertifikat host dengan waktu kedaluwarsa yang singkat selama 90 hari. Jika Anda belum mengonfigurasikan sistem untuk memanggil perintah secara otomatis, Anda harus menjalankan ulang perintah certbot secara manual sebelum kedaluwarsa. Prosedur ini menunjukkan cara mengotomatiskan Certbot dengan mengatur tugas cron.

Untuk mengotomatiskan Certbot

  1. Buka file /etc/crontab di editor teks, seperti vim atau nano, menggunakan sudo. Alternatif lainnya, gunakan sudo crontab -e.

  2. Tambahkan baris yang mirip dengan yang berikut ini dan simpan file.

    39      1,13    *       *       *       root    certbot renew --no-self-upgrade

    Berikut adalah penjelasan untuk setiap komponen:

    39 1,13 * * *

    Menjadwalkan perintah untuk dijalankan pada pukul 01.39 dan 13.39 setiap hari. Nilai yang dipilih bersifat arbitrer, tetapi developer Certbot menyarankan untuk menjalankan perintah setidaknya dua kali sehari. Ini menjamin bahwa setiap sertifikat yang didapati telah diretas segera dicabut dan diganti.

    root

    Perintah berjalan dengan izin root.

    certbot renew --no-self-upgrade

    Perintah yang akan dijalankan. Subperintah renew menyebabkan Certbot memeriksa setiap sertifikat yang diperoleh sebelumnya dan memperbarui sertifikat yang mendekati masa kedaluwarsa. Bendera --no-self-upgrade mencegah Certbot meningkat sendiri tanpa intervensi Anda.

  3. Mulai ulang cron` daemon.

    [ec2-user ~]$ sudo systemctl restart crond

Apa maksud perintah chmod 755?

Apa Arti CHMOD 755? Mengatur hak akses menjadi chmod 755 hampir sama dengan chmod 644. Perbedaannya semua user dapat hak akses untuk mengeksekusi file. Ini biasanya digunakan untuk folder public yang membutuhkan perintah untuk berpindah dari direktori satu ke direktori lainnya.

Apakah fungsi dari perintah chmod?

chmod sendiri adalah singkatan dari Change Mode yang di mana fungsinya sebagai managemen hak akses / permission terhadap suatu folder atau file kepada User, Group, dan Other. Sedangkan chown ialah sebuah perintah yang di gunakan untuk mengganti owner atau kepemilikan dari sebuah file atau folder.

Apa yang dilakukan perintah ls?

3. ls [options] nama Fungsi : menampilkan daftar file dalam directory aktif. Keterangan : Perintah ini akan menampilkan informasi mengenai directory dan file. Bentuk sederhana perintah ls akan menampilkan hanya nama file.

Apa itu permission pada Linux?

Pada dasarnya konsep file permission di GNU/Linux adalah suatu pengaturan kepemilikan file/folder berdasarkan user dan/atau group. Kepemilikan file/folder bisa diberikan kepada user/group. Secara garis besar file permission di bagi menjadi 3 yaitu user, group, dan other.