Create a Self-Signed SSL Certificate for Apache in Ubuntu 22.04
Fega Suseno
Posted on August 13, 2024
Hallo guys.
Pada postingan ini kita akan membahas bagaimana untuk membuat ssl sertifikat local untuk server kita di jaringan local. Sebelum lanjut perlu saya mention bahwa sertifikat ini kita buat sendiri sehingga ini tidak akan valid terbaca oleh browser, jadi mungkin nanti akan ada peringatan seperti di bawah ketika mengakses https nya.
Oke langsung lanjut ke pembahasan, di asumsikan apache web server sudah terinstall di ubuntu kita sesuai judul post ini.
Pertama aktifkan modul ssl
a2enmod ssl
Reload web server untuk mengaktifkan perubahanya
systemctl reload apche2
Setelah modul aktif, berikutnya adalah membuat sertifikat dengan menggunakan tools openssl, biasanya tools ini sudah default di ubuntu versi 22.04 ini.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nama-ssl.key -out /etc/ssl/certs/nama-ssl.crt
Lalukan informasi yg perlu di isi, sesuaikan saja seperti Country
Name (2 letter code) [XX]:US
State or Province Name (full name) []:Example
Locality Name (eg, city) [Default City]:Example
Organization Name (eg, company) [Default Company Ltd]:Example Inc
Organizational Unit Name (eg, section) []:Example Dept
Common Name (eg, your name or your server's hostname) []:your_domain_or_ip
Email Address []:webmaster@example.com
Selanjutnya adalah membuat konfigurasi file ssl di /etc/apache2/sites-available
. Tapi saya sarankan untuk mengcopy dari file default-ssl.conf
bawaan apache untuk meminimalisir typo dan error.
cp default-ssl.conf domainmu-ssl.conf
Selanjutnya tinggal edit file hasil copy tadi
nano /etc/apache2/sites-available/domainmu-ssl.conf
Buat konfigurasinya jadi seperti ini
+<VirtualHost *: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-fega.crt
+ SSLCertificateKeyFile /etc/ssl/private/ssl-fega.key
- <FilesMatch "\.(cgi|shtml|phtml|php)$">
- SSLOptions +StdEnvVars
- </FilesMatch>
- <Directory /usr/lib/cgi-bin>
- SSLOptions +StdEnvVars
- </Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Bagian yang hijau adalah bagian yg perlu di perhatikan saat edit, biasanya terlewat saat memodifikasi filenya. Bagian warna merah itu optional bawaan dari hasil copy, ini jika ingin dihapuspun tidak masalah. Pada bagian SSLCertificateFile
dan SSLCertificateKeyFile
arahkan pathnya sesuai file yg di buat dengan openssl
tadi di atas. Perhatikan juga pada bagian DocumentRoot
bahwa pathnya diarahkan sesuai!
Selanjutnya save dan exit.
setelah itu enable config site dari file yg kita buat yaitu domainmu-ssl.conf
dengan menggunakan perintah berikut
a2ensite domainmu-ssl.conf
cek bahwa semua configurasi benar dengan perintah berikut
apachectl configtest
jika syntax sudah ok selanjutnya bisa merestart apache web servernya. Jalankan perintah berikut
systemctl restart apache2
Selanjutnya uji coba dddengan mengakses web dengan https://domainmu.com atau dengan https://ip-servermu.
Jika ingin otomatis redirect servermu bisa di tambahkan dengan syntak berikut pada virtualhost servermu. Ingat ini virtualhostnya ya, bukan config ssl yg tadi.
Anggaplah kita masih menggunakan 000-default.conf
.
nano 000-default.conf
Tambahkan baris yg saya beri warna hijau
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
+ Redirect / https://your_domain_or_ip/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Simpan dan exit, lalu restart servernya
systemctl restart apache2
Jika berhasil, ketika mengakses web server maka akan langsung di arahkan dengan https
.
Selamat mencoba, semoga bermanfaat.
Posted on August 13, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.