Mengkonfigurasi Apache dengan TLS / SSL Certificate yang ditandatangani sendiri pada Ubuntu 16.04

SSL, dan penerusnya TLS (Secure Sockets Layer / Transport Layer Security) menambahkan lapisan enkripsi antara klien dan server. Tanpa teknologi ini, data dikirim ke server dalam bentuk teks biasa, memungkinkan pihak ketiga untuk membaca semua informasi yang dikirim dan diterima oleh server Anda.

Tutorial ini akan mengajarkan Anda cara membuat sertifikat SSL / TLS dan mengaktifkannya di Apache 2.4 pada Ubuntu 16.04. Saya menganggap Apache sudah diatur dan berjalan. Jika Anda ingin mempelajari cara memasang tumpukan LAMP, lihat dokumen Vultr ini .

Perhatian

Sertifikat SSL / TLS biasanya dihasilkan oleh CA (otoritas sertifikat) yang tepercaya. Dengan membuatnya sendiri, Anda akan menjadi penandatangannya, artinya browser tidak akan dapat memverifikasi apakah identitas sertifikat harus dipercaya, dan itu akan memperingatkan pengguna. Meskipun dimungkinkan untuk melewati peringatan ini, situs yang dihadapkan publik harus menggunakan sertifikat yang ditandatangani oleh CA yang tepercaya. Mari mengenkripsi adalah CA yang menawarkan sertifikat gratis. Anda dapat mempelajari cara memasang sertifikat di Apache dan Ubuntu 16.04 di sini .

Untuk aplikasi internal, menggunakan sertifikat yang ditandatangani sendiri mungkin sah, terutama jika Anda tidak memiliki nama domain.


Langkah 1: Menghasilkan sertifikat

  1. Pertama, mari kita buat tempat untuk menyimpan file.

    mkdir ~/certificates
    cd ~/certificates
    
  2. Hasilkan CSR dan kunci pribadi.

    openssl req -x509 -newkey rsa:4096 -keyout apache.key -out apache.crt -days 365 -nodes
    

    Ini akan meminta informasi untuk permintaan sertifikat. Lengkap dengan informasi yang sesuai.

    Country Name (2 letter code) [AU]: US
    State or Province Name (full name) [Some-State]: FL
    Locality Name (eg, city) []: Miami
    Organization Name (eg, company) [My Company]: My Company
    Organizational Unit Name (eg, section) []:
    

    Nama umum harus nama domain Anda atau alamat IP server. Juga, isi email Anda.

    Common Name (e.g. server FQDN or YOUR name) []: 203.0.113.122
    Email Address []:[email protected]
    
  3. Sekarang, pindahkan sertifikat ke folder konfigurasi Apache.

    mkdir /etc/apache2/ssl
    mv ~/certificates/* /etc/apache2/ssl/.
    
  4. Sertifikat sudah siap! Selanjutnya, kami akan menyiapkan Apache untuk bekerja dengan sertifikat.

Langkah 2: Konfigurasi firewall

  1. Kami harus memastikan port TCP 443 terbuka. Port ini digunakan dalam koneksi SSL, bukan port 80. Dalam tutorial ini, kita akan menggunakan UFW.

  2. Pastikan UFW diaktifkan.

    sudo ufw enable
    
  3. Sekarang izinkan pengaturan Apache yang telah ditentukan untuk firewall.

    sudo ufw allow 'Apache Full'
    
  4. Dengan mengetikkan " sudo ufw status", Anda dapat melihat daftar aturan saat ini. Konfigurasi Anda harus menyerupai ini:

    To                         Action      From
    --                         ------      ----
    Apache Full                ALLOW       Anywhere
    OpenSSH                    ALLOW       Anywhere
    Apache Full (v6)           ALLOW       Anywhere (v6)
    OpenSSH (v6)               ALLOW       Anywhere (v6)
    
  5. Anda juga harus mengizinkan OpenSSH di sini untuk koneksi di masa depan.

    sudo ufw allow 'OpenSSH'
    

Langkah 3: Konfigurasi host virtual Apache

  1. Arahkan ke direktori konfigurasi situs Apache default.

    sudo nano /etc/apache2/sites-available/default-ssl.conf
    
  2. File ini memberi tahu server tempat mencari sertifikat SSL. Dengan komentar dihapus, itu akan terlihat seperti konfigurasi berikut.

    <IfModule mod_ssl.c>
      <VirtualHost _default_:443>
       ServerAdmin webmaster@localhost
    
       DocumentRoot /var/www/html
    
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
    
       SSLEngine on
    
       SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
       SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    
       <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
       </FilesMatch>
       <Directory /usr/lib/cgi-bin>
        SSLOptions +StdEnvVars
       </Directory>
    
     </VirtualHost>
    </IfModule>
    
  3. Edit baris ini:

    ServerAdmin [email protected]
    
  4. Tambahkan ini tepat di bawah ServerAdmingaris:

    ServerName ADD_YOUR_IP_OR_DOMAIN_NAME_HERE
    
  5. Sekarang, edit baris ini dengan lokasi sertifikat kami:

    SSLCertificateFile    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
  6. File terakhir kami harus menyerupai ini:

    <IfModule mod_ssl.c>
     <VirtualHost _default_:443>
      ServerAdmin [email protected]
      ServerName 203.0.113.122
    
      DocumentRoot /var/www/html
    
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    
      SSLEngine on
    
      SSLCertificateFile    /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
    
      <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
      </FilesMatch>
      <Directory /usr/lib/cgi-bin>
       SSLOptions +StdEnvVars
      </Directory>
    
     </VirtualHost>
    </IfModule>
    
  7. Simpan dan tutup file.

Langkah 4: Mengaktifkan modul Apache SSL

  1. Aktifkan modul SSL dengan mengetik:

    sudo a2enmod ssl
    
  2. Sekarang aktifkan situs yang baru saja kita edit:

    sudo a2ensite default-ssl.conf
    
  3. Mulai ulang Apache:

    sudo service apache2 restart
    
  4. Mari mengakses situs web aman baru! Buka di browser Anda (pastikan Anda mengetik https: // ).

    https://YOUR_SERVER_IP
    

Browser Anda akan memperingatkan Anda bahwa sertifikat tidak valid, seperti yang kami harapkan. Ini terjadi karena sertifikat tidak ditandatangani. Ikuti langkah-langkah yang ditawarkan oleh browser Anda untuk melanjutkan ke situs Anda.

Langkah 5: Arahkan ulang semua lalu lintas HTTP ke HTTPS (Opsional)

  1. Buka file host virtual standar Apache:

    nano /etc/apache2/sites-available/000-default.conf
    
  2. Tambahkan baris ini di dalam <VirtualHost *:80>tag:

    Redirect / https://YOUR_SERVER_IP_OR_DOMAIN/
    
  3. Muat ulang konfigurasi Apache:

    sudo service apache2 reload
    

Semua lalu lintas situs web sekarang akan secara otomatis dialihkan ke HTTPS.



Leave a Comment

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut