TLS, atau transport layer security, dan SSL pendahulunya, secure sockets layer, adalah protokol aman yang dibuat untuk menempatkan lalu lintas normal dalam pembungkus terenkripsi yang dilindungi.
Protokol ini memungkinkan lalu lintas untuk dikirim dengan aman antar pihak jarak jauh tanpa kemungkinan lalu lintas disadap dan dibaca oleh seseorang di tengah. Mereka juga berperan dalam memvalidasi identitas domain dan server di seluruh internet dengan membuat server sebagai tepercaya dan asli oleh otoritas sertifikat.
Dalam panduan ini, saya akan membahas cara membuat sertifikat SSL yang ditandatangani sendiri untuk Apache pada server Ubuntu 18.04, yang akan memungkinkan Anda mengenkripsi lalu lintas ke server Anda. Meskipun ini tidak memberikan manfaat validasi pihak ketiga dari identitas server Anda, itu memenuhi persyaratan dari mereka yang hanya ingin mentransfer informasi dengan aman.
Sebelum memulai, Anda harus memiliki beberapa konfigurasi yang sudah diurus. saya akan beroperasi sebagai pengguna non-root dengan hak sudo dalam panduan ini. Anda dapat mengaturnya dengan mengikuti langkah 1-4 di panduan pengaturan server awal Ubuntu 18.04 saya. Anda juga perlu menginstal Apache. Jika Anda belum memilikinya dan berjalan, Anda dapat dengan cepat memperbaikinya dengan mengetik:
sudo apt-get update
sudo apt-get install apache
Langkah pertama aktifkan SSL Module :
sudo a2enmod ssl
Setalah mengaktifkan mdoul SSL, restart apache dengan perintah berikut :
sudo service apache2 restart
Langkah kedua untuk membuat sertifikat SSL
sebelum membuat sertifikat kita harus membuat sub folder dengan pertintah berikut :
sudo mkdir /etc/apache2/ssl
Sekarang kita sudah siap untuk membuat sertifikat yang akan di simpan di folder SSl, untuk membuatnya dengan perintah :
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Mari kita bahas apa artinya ini.
openssl: Ini adalah alat baris perintah dasar yang disediakan oleh OpenSSL untuk membuat dan mengelola sertifikat, kunci, permintaan penandatanganan, dll.
req: Ini menetapkan perintah untuk manajemen permintaan penandatanganan sertifikat X.509 (CSR). X.509 adalah standar infrastruktur kunci publik yang dianut SSL untuk manajemen kunci dan sertifikatnya. Karena saya ingin membuat sertifikat X.509 baru, inilah yang saya inginkan.
-x509: Opsi ini menetapkan bahwa saya ingin membuat file sertifikat yang ditandatangani sendiri alih-alih membuat permintaan sertifikat.
-nodes: Opsi ini memberi tahu OpenSSL bahwa kita tidak ingin mengamankan file kunci kita dengan kata sandi. Memiliki file kunci yang dilindungi kata sandi akan menghalangi Apache mulai secara otomatis karena kita harus memasukkan kata sandi setiap kali layanan dimulai ulang.
-days 365: Ini menetapkan bahwa sertifikat yang saya buat akan valid selama satu tahun.
-newkey rsa: 2048: Opsi ini akan membuat permintaan sertifikat dan kunci pribadi baru pada saat yang bersamaan. Ini diperlukan karena saya tidak membuat kunci pribadi terlebih dahulu.
The rsa: 2048 memberitahu OpenSSL untuk menghasilkan kunci RSA yang panjangnya 2048 bit.
-keyout : Parameter ini menamai file output untuk file kunci pribadi yang sedang dibuat.
-out: Opsi ini memberi nama file output untuk sertifikat yang kita hasilkan.
Kemudian setelah menekan "ENTER", Anda akan ditanya sejumlah pertanyaan.
Point paling penting yang diminta adalah baris yang bertuliskan "Nama Umum (mis. Server FQDN atau nama ANDA)". Anda harus memasukkan nama domain yang ingin Anda kaitkan dengan sertifikat, atau alamat IP publik server jika Anda tidak memiliki nama domain.
Lebih jelas bentuk pertanyaanya adalah seperti ini :
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York Locality Name (eg, city) []:New York City Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Company Organizational Unit Name (eg, section) []:Department of Kittens
Common Name (e.g. server FQDN or YOUR name) []:your_domain.com
Email Address []:your_email@domain.com
Langkah Ketiga konfigurasi Apache untuk menggunakan SSL
Buka file dengan hak akses root dengan perintah berikut :
sudo nano /etc/apache2/sites-available/default-ssl.conf
Modifikasi pada baris ServerName dan ServerAlias sesuaiakn dengan nama domain Anda atau dengan IP anda.
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin admin@example.com
ServerName your_domain.com
ServerAlias www.your_domain.com
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>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Jika sudah simpan dan keluar.
Langkah ke empat aktikan SSL pada Virtual Host
Kita akan menggunakan perintah berikut :
sudo a2ensite default-ssl.conf
Kemudian restart apache untuk memuat virtual host baru dengan perintah berikut :
sudo service apache2 restart
Langkah ke lima coba pengaturan yang sudah anda buat
dengan mengakses url dengan protokol
https:// :
https://server_domain_name_or_IP
Selamat anda sudah berhasil Membuat Sertifikat SSL pada Apache untuk Ubuntu 18.04 LTS.
Semoga informasi ini bermanfaat., salam linuxer