ACME (Automated Certificate Management Environment) adalah sebuah protokol yang digunakan untuk mengotomatisasi proses mendapatkan dan memperbarui sertifikat SSL/TLS untuk situs web.
Let's Encrypt adalah Otoritas Sertifikat (CA) yang menawarkan sertifikat SSL/TLS gratis untuk mengamankan situs web. Proyek Let's Encrypt telah mengimplementasikan protokol ACME untuk menyederhanakan dan mempermudah proses mendapatkan dan mengelola sertifikat tersebut.
Cara Kerja:
- Permintaan Sertifikat: Ketika pemilik situs web ingin mengamankan situs web mereka dengan sertifikat SSL/TLS, mereka dapat menggunakan protokol ACME untuk meminta sertifikat dari CA seperti Let's Encrypt.
- Verifikasi Kepemilikan Domain: ACME meminta pemilik situs web untuk membuktikan bahwa mereka memiliki kendali atas domain yang diminta sertifikatnya. Biasanya ini dilakukan dengan menempatkan token khusus yang diberikan oleh CA di situs web atau dengan mengonfigurasi catatan DNS.
- Penerbitan Sertifikat: Setelah kepemilikan domain diverifikasi, CA menerbitkan sertifikat SSL/TLS untuk domain yang diminta.
- Pembaruan Otomatis: Sertifikat Let's Encrypt memiliki periode validitas yang relatif singkat (biasanya 90 hari). Namun, ACME menyederhanakan proses pembaruan. Administrator situs web dapat mengatur proses otomatis yang menggunakan protokol ACME untuk memperbarui sertifikat sebelum masa berlaku habis.
Menggunakan ACME dan sertifikat Let's Encrypt telah secara signifikan mengurangi hambatan bagi pemilik situs web untuk menerapkan HTTPS (SSL/TLS) pada situs web mereka, meningkatkan keamanan dan privasi bagi pengguna dengan mengenkripsi data yang dikirimkan antara browser pengguna dan server situs web.
Untuk mengimplementasikan ACME dan mendapatkan sertifikat Let's Encrypt, biasanya Anda akan menggunakan perangkat lunak klien ACME. Ada berbagai klien ACME yang tersedia yang mengotomatisasi proses mendapatkan dan memperbarui sertifikat dengan berinteraksi dengan server Let's Encrypt menggunakan protokol ACME. Klien ACME populer termasuk Certbot, acme.sh, dan lainnya.
Let's Encrypt Free SSL ACME OpenBSD di Apache2 (Bukan Nginx).
Proses pembuatan Free SSL dengan menggunakan acme-client di Sistem Operasi OpenBSD yang akan kita bahas kali ini adalah untuk Web Server berbasis Apache2 bukan Nginx.
Dengan asumsi bahwa Web Server (Apache2) sudah siap running di Sistem Operasi OpenBSD anda. Seperti yang pernah dibahas di artikel Install PHP, MySQL, Apache, dan phpMyAdmin di OpenBSD.
Persiapan awal.
Kita persiapkan dulu directory yang dibutuhkan acme-client untuk output file key dan sertifikat.
mkdir /etc/apache2/ssl
Buat directory ssl di dalam /etc/apache2.
nano /etc/apache2/httpd.conf
Edit file httpd.conf di /etc/apache2 dengan nano.
<VirtualHost *:80>
DocumentRoot "/var/www/htdocs"
ServerAdmin pr@lynix.id
ServerName openbsd.lynixnetwork.com:80
Alias "/.well-known/acme-challenge/" "/var/www/acme/"
<Directory "/var/www/acme/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory />
AllowOverride none
Require all denied
</Directory>
<Directory "/var/www/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
DocumentRoot "/var/www/htdocs"
ServerAdmin pr@lynix.id
ServerName openbsd.lynixnetwork.com:80
Alias "/.well-known/acme-challenge/" "/var/www/acme/"
<Directory "/var/www/acme/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory />
AllowOverride none
Require all denied
</Directory>
<Directory "/var/www/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
Jika menggunakan contoh file httpd2.conf yang bisa anda download disini, kita disable dulu bagian SSL (kotak merah) karena kita belum memiliki file sertifikat dan key. Kalau bagian ssl tersebut tidak di comment (#) maka Apache2 tidak akan bisa start.
Kemudian edit file acme-client.conf di /etc.
nano /etc/acme-client.conf
Isikan seperti pada gambar. Atau bisa copy dibagian bawah ini:
authority letsencrypt {
api url "https://acme-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-privkey.pem"
}
authority letsencrypt-staging {
api url "https://acme-staging-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-staging-privkey.pem"
}
authority buypass {
api url "https://api.buypass.com/acme/directory"
account key "/etc/acme/buypass-privkey.pem"
contact "mailto:pr@lynix.id"
}
authority buypass-test {
api url "https://api.test4.buypass.no/acme/directory"
account key "/etc/acme/buypass-test-privkey.pem"
contact "mailto:pr@lynix.id"
}
domain openbsd.lynixnetwork.com {
alternative names { openbsd.lynixnetwork.com }
domain key "/etc/apache2/ssl/openbsd.lynixnetwork.com.key"
domain full chain certificate "/etc/apache2/ssl/openbsd.lynixnetwork.com.pem"
sign with letsencrypt
}
api url "https://acme-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-privkey.pem"
}
authority letsencrypt-staging {
api url "https://acme-staging-v02.api.letsencrypt.org/directory"
account key "/etc/acme/letsencrypt-staging-privkey.pem"
}
authority buypass {
api url "https://api.buypass.com/acme/directory"
account key "/etc/acme/buypass-privkey.pem"
contact "mailto:pr@lynix.id"
}
authority buypass-test {
api url "https://api.test4.buypass.no/acme/directory"
account key "/etc/acme/buypass-test-privkey.pem"
contact "mailto:pr@lynix.id"
}
domain openbsd.lynixnetwork.com {
alternative names { openbsd.lynixnetwork.com }
domain key "/etc/apache2/ssl/openbsd.lynixnetwork.com.key"
domain full chain certificate "/etc/apache2/ssl/openbsd.lynixnetwork.com.pem"
sign with letsencrypt
}
Kemudian kita jalankan acme-client untuk melakukan generate sertifikat SSL untuk domain kita. Dalam contoh ini adalah: openbsd.lynixnetwork.com.
acme-client -v openbsd.lynixnetwork.com
Tunggu hingga proses selesai.
Dan kita cek isi directory /etc/apache2/ssl. Untuk memastikan sertifikat SSL tersebut sudah ada.
Dan pastikan untuk menyesuaikan path dari sertifikat tersebut di konfigurasi SSL Web Server di Sistem Operasi OpenBSD anda.
Langkah selanjut nya adalah restart Web Server anda. Dan lakukan test.
Konfigurasi Let's Encrypt Free SSL dengan ACME di Sistem Operasi OpenBSD sudah selesai.
Let's Encrypt Free SSL ACME OpenBSD - Lynix
August 30, 2023
August 30, 2023