Memasang SSL Webserver Apache & Nginx dengan Certbot

NATVPS.id – Ketika mengelola server web, keamanan dan efisiensi adalah dua aspek yang tidak bisa diabaikan. Salah satu cara untuk meningkatkan keamanan adalah dengan menggunakan SSL/TLS, yang memungkinkan komunikasi terenkripsi antara server dan pengunjung.

Dalam tutorial ini, kita akan membahas cara mengonfigurasi VirtualHost di Apache2 dan mengamankan website menggunakan SSL gratis dari Let’s Encrypt dengan Certbot. Dengan langkah-langkah yang jelas dan mudah diikuti, kamu bisa memastikan bahwa situs webmu berjalan dengan aman menggunakan HTTPS.

Persyaratan

  • NAT VPS dengan OS Ubuntu/Debian
  • Domain yang sudah terdaftar dan Terdapat Record ke NAT VPS
  • Web Server (Apache2 dan Nginx)
  • Certbot

Setelah memastikan bahwa persyaratan minimum telah terpenuhi, mari lanjut ke Installasi dan Konfigurasi. Mari kita mulai!

Instalasi dan Konfigurasi Let’s Encrypt dengan Certbot untuk Apache2 

Update packages

Sebelum instalasi Apache, pastikan untuk memperbarui repositori dan paket-paket yang ada di sistem.

apt update

Install apache

Ketika membeli NAT VPS, biasanya web server Apache sudah terinstal secara default. Untuk memastikanya, kita bisa menggunakan mengetikan comand sebagai berikut systemctl status apache2.

#Install Apache
apt install apache2

#Melihat Service Apache
systemctl status apache2

Install Teks Editor

Untuk mempermudah kita ketika mengedit file nantinya, kita perlu menggunakan Teks EditorPada tutorial kali ini kita akan menggunakan nano.

apt install nano

Install Certbot

Sebelum mendapatkan sertifikat SSL dari Let’s Encrypt, kita perlu menginstal Certbot di server. Untuk itu, kita akan menggunakan repositori bawaan Ubuntu. Ada dua paket utama yang dibutuhkan:

  1. certbot – Alat utama untuk mengelola sertifikat SSL
  2. python3-certbot-apache – Plugin yang memungkinkan integrasi Certbot dengan Apache, sehingga proses penerbitan sertifikat dan konfigurasi HTTPS dapat dilakukan secara otomatis hanya dengan satu perintah.
apt install certbot python3-certbot-apache -y

Menambahkan Domain Forwarding

Seperti biasa, untuk NAT VPS, pengaturan Domain Forwarding perlu dilakukan agar web server dapat diakses dengan domain. Atur domain forwarding untuk port 80 dan 443 sehingga terlihat seperti pada gambar berikut :

Membuat Konfigurasi VirtualHost Apache

Untuk dapat mengakses Web server kita menggunakan domain yang sudah ditambahkan dalam domain forwarding, kita perlu menggunakan VirtualHost agar setiap situs dapat diakses dengan konfigurasi yang tepat. Berikut adalah langkah-langkah untuk membuat dan mengaktifkan VirtualHost di Apache.

nano /etc/apache2/sites-available/abdulhalim.my.id.conf

Sesuaikan nama file konfigurasi VirtualHost sesuai nama file yang teman-teman inginkan. Disini Kami menggunakan nama domain sebagai nama konfigurasi VirtualHost.

Kemudian, copy Konfigurasi dibawah ini pada file VirtualHost dan sesuaikan dengan konfigurasi ServerName, ServerAlias, Dan DocumentRoot sesuai milik teman-teman.

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html
    ServerName abdulhalim.my.id
    ServerAlias www.abdulhalim.my.id

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.abdulhalim.my.id [OR]
RewriteCond %{SERVER_NAME} =abdulhalim.my.id
RewriteRule ^  [END,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html
    ServerName abdulhalim.my.id
    ServerAlias www.abdulhalim.my.id

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/abdulhalim.my.id/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/abdulhalim.my.id/privkey.pem
</VirtualHost>

Selanjutnya simpan konfigurasi tersebut dengan menekan ctrl+x, Y, lalu enter. Kemudian untuk mengaktifkan konfigurasi tersebut jalankan perintah berikut :

a2ensite abdulhalim.my.id.conf
systemctl reload apache2

Mendapatkan SSL Menggunakan Certbot

Certbot menawarkan beberapa metode untuk mendapatkan sertifikat SSL melalui berbagai plugin. Plugin Apache secara otomatis menangani konfigurasi ulang serta memuat ulang pengaturan Apache saat diperlukan. Untuk menggunakannya, jalankan perintah berikut:

certbot --apache

Setelah menjalankan perintah tersebut, certbot akan mengajukan beberapa pertanyaan untuk membantu mengonfigurasi sertifikat SSL. Pertama, Anda akan diminta memasukkan alamat email yang valid, yang akan digunakan untuk mengirim pemberitahuan terkait pembaruan dan keamanan.

Selanjutnya Certbot akan meminta konfirmasi mengenai domain yang ingin diaktifkan HTTPS-nya. Domain-domain tersebut otomatis terdeteksi dari konfigurasi VirtualHost Apache, sehingga penting memastikan ServerName dan ServerAlias sudah diatur dengan benar. Jika ingin mengaktifkan HTTPS untuk semua domain (disarankan), cukup tekan ENTER. Jika hanya untuk domain tertentu, masukkan nomor domain yang diinginkan, pisahkan dengan koma atau spasi, lalu tekan ENTER.

Jika sudah, Selanjutnya masukan domain teman-teman pada browser yang disukai untuk memastikan bahwa SSL sudah aktif.

Instalasi dan Konfigurasi Let’s Encrypt dengan Certbot untuk Nginx

Untuk mendapatkan SSL pada web server nginx, langkah yang akan dilakukan hampir sama. Perbedaan-nya hanya pada plugin certbot yang digunakan, yaitu python3-certbot-nginx -y. Untuk lebih jelasnya simak tutorial dibawah ini.

Install Nginx dan Konfigurasi VirtualHost

Sebelum menginstall Web server nginx, pastikan untuk memperbarui repositori dan paket-paket yang ada di sistem.

#Update Repository
apt update

#Install Nginx
apt install nginx

#Cek Service Nginx
systemctl status nginx

Setelah Web server Nginx terinstall, selanjutnya kita edit file konfigurasi VirtualHost default dari nginx, dengan menambahkan server_name sesuai domain kita dan sesuaikan root dengan letak website kita.

Untuk mengedit file tersebut masukan perintah dibawah ini dan temukan baris sesuai pada gambar.

#Perintah edit File
nano /etc/nginx/sites-available/default


#Konfigurasi VirtualHost
server {

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

server_name abdulhalim.my.id www.abdulhalim.my.id;

location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}

Selanjutnya, simpan konfigurasi dengan menekan CTRL+X, lalu Y, dan enter. Kemudian restart service nginx.

systemctl reload nginx

Menambahkan Domain Forwarding

Seperti biasa, untuk NAT VPS, pengaturan Domain Forwarding perlu dilakukan agar web server dapat diakses dengan domain. Atur domain forwarding untuk port 80 dan 443 sehingga terlihat seperti pada gambar berikut :

Install Certbot

Ada dua paket utama yang dibutuhkan:

  1. certbot – Alat utama untuk mengelola sertifikat SSL
  2. python3-certbot-nginx – Plugin yang memungkinkan integrasi Certbot dengan Nginx, sehingga proses penerbitan sertifikat dan konfigurasi HTTPS dapat dilakukan secara otomatis hanya dengan satu perintah.
apt install certbot python3-certbot-nginx -y

Mendapatkan SSL Menggunakan Certbot

Certbot menawarkan beberapa metode untuk mendapatkan sertifikat SSL melalui berbagai plugin. Plugin Nginx secara otomatis menangani konfigurasi ulang serta memuat ulang pengaturan Nginx saat diperlukan. Untuk menggunakannya, jalankan perintah berikut:

 certbot --nginx

Setelah menjalankan perintah tersebut, certbot akan mengajukan beberapa pertanyaan untuk membantu mengonfigurasi sertifikat SSL. Pertama, Anda akan diminta memasukkan alamat email yang valid, yang akan digunakan untuk mengirim pemberitahuan terkait pembaruan dan keamanan.

Selanjutnya Certbot akan meminta konfirmasi mengenai domain yang ingin diaktifkan HTTPS-nya. Domain-domain tersebut otomatis terdeteksi dari konfigurasi VirtualHost Nginx, sehingga penting memastikan name_server sudah diatur dengan benar. Jika ingin mengaktifkan HTTPS untuk semua domain (disarankan), cukup tekan ENTER. Jika hanya untuk domain tertentu, masukkan nomor domain yang diinginkan, pisahkan dengan koma atau spasi, lalu tekan ENTER.

Jika sudah, Selanjutnya masukan domain teman-teman pada browser yang disukai untuk memastikan bahwa SSL sudah aktif.

Penutup

Terima kasih telah mengikuti tutorial ini! Semoga bermanfaat, dan jangan lupa untuk selalu menjaga keamanan server kamu.

Game News

Gaming Center

Berita Olahraga

Berita Olahraga

Anime Batch

News

Pelajaran Sekolah

Berita Terkini

Berita Terkini

Review Film

A gaming center is a dedicated space where people come together to play video games, whether on PCs, consoles, or arcade machines. These centers can offer a range of services, from casual gaming sessions to competitive tournaments.

More From Author

Meditasi Sebagai Jalan Pemulihan Bagi Penderita Lupus dan Autoimun

Dijamin Romantis! Ini 7 Tempat Coffee Date di Jogja yang Lagi Hits 2025