Tutorial FreeBSD - Menyiapkan Apache mod OpenSSL untuk HTTPS
· 2 min read · Label UnixBSD
Server web Apache sudah ada sejak bertahun-tahun lalu, dan kini penggunanya terus bertambah. mod_ssl memberikan keamanan yang lebih baik untuk server web Apache dan dapat diinstal di hampir semua versi Apache dan semua sistem operasi seperti FreeBSD, Linux, MacOS, dan Windows.
Secure Sockets Layer Protocol atau yang sering disebut SSL merupakan protokol keamanan yang dapat diletakkan di antara protokol lapisan jaringan TCP/IP dan protokol lapisan aplikasi HTTP. Mod SSL pada Apache menyediakan komunikasi yang aman antara klien dan server, Mod ini akan melakukan autentikasi dan menggunakan tanda tangan digital untuk integritas dan enkripsi untuk privasi. Saat ini ada dua versi SSL yang masih digunakan, yaitu versi 2 dan versi 3.
SSL/TLS menggunakan Public Key Cryptography (PKC), yang dikenal sebagai Asymmetric PKC Cryptography. Kriptografi kunci publik digunakan dalam situasi di mana klien dan server tidak berbagi rahasia yang sama, misalnya antara browser dan server web, tetapi keduanya ingin membangun sistem keamanan dengan saluran tepercaya untuk komunikasi mereka.
Kriptografi Kunci Publik atau PKC mendefinisikan sebuah algoritma yang menggunakan dua kunci, yang masing-masing kunci dapat digunakan untuk mengenkripsi sebuah pesan. Jika satu kunci digunakan untuk mengenkripsi sebuah pesan, maka kunci lainnya harus digunakan untuk mendekripsinya. Proses ini dilakukan untuk menerima pesan yang aman dengan hanya menerbitkan satu kunci (kunci publik) dan merahasiakan kunci lainnya (kunci privat).
Kunci publik dapat dienkripsi oleh siapa saja, tetapi hanya pemilik kunci privat yang dapat membacanya. Misalnya, Mary mengirimkan pesan privat kepada pemilik pasangan kunci (misalnya server web Anda), maka pesan dari Mary akan dienkripsi menggunakan kunci publik yang diterbitkan oleh server Anda. Hanya Anda yang dapat mendekripsinya menggunakan kunci privat yang sesuai.
Lihat gambar di bawah ini.
Proses instalasi OpenSSL di FreeBSD cukup mudah, tidak ada pengaturan Start up rc.d, tetapi pengaturan dan implementasinya agak rumit dan terkadang membingungkan. Silakan gunakan langkah-langkah dalam panduan artikel ini.
Setelah Anda menginstal Perl, Anda dapat langsung menginstal OpenSSL. Kami sarankan untuk menggunakan port sistem FreeBSD, agar proses instalasi lebih sempurna.
Perintah di atas akan membuat file server.key dan akan meminta kata sandi. Pastikan untuk mengingat kata sandi ini. Anda akan memerlukannya saat memulai Apache Anda berikutnya.
Selanjutnya, buat file permintaan sertifikat, yaitu "server.csr", proses pembuatan file ini akan menggunakan file server.key di atas.
Di hampir semua sistem operasi, file konfigurasi Apache disebut "httpd.conf", satu-satunya perbedaan adalah lokasi file tersebut. Di FreeBSD, file ini berada di direktori "/usr/local/etc/apache24", buka file tersebut dan aktifkan skrip SSL di dalam file tersebut, seperti pada contoh di bawah ini.
Perhatikan skrip berwarna biru, skrip tersebut adalah file OpenSSL yang telah kita buat sebelumnya. Untuk menguji semua konfigurasi di atas, mulai ulang server apache.
Anda akan diminta memasukkan password, ketik password dari file OpenSSL yang Anda buat di atas.
Ujian selanjutnya adalah membuka web browser "Google Chrome" dan ketik perintah "https://192.168.5.2/".
Tutorial ini menunjukkan instalasi dasar dan penggunaan mod_ssl pada server apache dengan OpenSSL. Meskipun perintahnya sangat sederhana, kemampuannya dalam melindungi server web sangat andal dan telah terbukti, karena banyak orang menggunakan OpenSSL sebagai sistem keamanan SSL pada server Apache.
Secure Sockets Layer Protocol atau yang sering disebut SSL merupakan protokol keamanan yang dapat diletakkan di antara protokol lapisan jaringan TCP/IP dan protokol lapisan aplikasi HTTP. Mod SSL pada Apache menyediakan komunikasi yang aman antara klien dan server, Mod ini akan melakukan autentikasi dan menggunakan tanda tangan digital untuk integritas dan enkripsi untuk privasi. Saat ini ada dua versi SSL yang masih digunakan, yaitu versi 2 dan versi 3.
SSL/TLS menggunakan Public Key Cryptography (PKC), yang dikenal sebagai Asymmetric PKC Cryptography. Kriptografi kunci publik digunakan dalam situasi di mana klien dan server tidak berbagi rahasia yang sama, misalnya antara browser dan server web, tetapi keduanya ingin membangun sistem keamanan dengan saluran tepercaya untuk komunikasi mereka.
Kriptografi Kunci Publik atau PKC mendefinisikan sebuah algoritma yang menggunakan dua kunci, yang masing-masing kunci dapat digunakan untuk mengenkripsi sebuah pesan. Jika satu kunci digunakan untuk mengenkripsi sebuah pesan, maka kunci lainnya harus digunakan untuk mendekripsinya. Proses ini dilakukan untuk menerima pesan yang aman dengan hanya menerbitkan satu kunci (kunci publik) dan merahasiakan kunci lainnya (kunci privat).
Kunci publik dapat dienkripsi oleh siapa saja, tetapi hanya pemilik kunci privat yang dapat membacanya. Misalnya, Mary mengirimkan pesan privat kepada pemilik pasangan kunci (misalnya server web Anda), maka pesan dari Mary akan dienkripsi menggunakan kunci publik yang diterbitkan oleh server Anda. Hanya Anda yang dapat mendekripsinya menggunakan kunci privat yang sesuai.
Lihat gambar di bawah ini.
Panduan dalam artikel ini akan membantu Anda mengaktifkan mod SSL untuk situs web yang dilayani di server web Apache. Isi artikel ini hanya berfokus pada pembuatan SSL di Apache dengan aplikasi OpenSSL.
1. Cara Install OpenSSL
OpenSSL adalah utilitas untuk protokol Transport Layer Security (TLS) dan Secure Sockets Layer (SSL). OpenSSL adalah aplikasi gratis dan merupakan pustaka kriptografi yang paling banyak digunakan. Tujuan utama pembuatan aplikasi adalah untuk mengamankan koneksi di server dan dalam perangkat lunak Anda.Proses instalasi OpenSSL di FreeBSD cukup mudah, tidak ada pengaturan Start up rc.d, tetapi pengaturan dan implementasinya agak rumit dan terkadang membingungkan. Silakan gunakan langkah-langkah dalam panduan artikel ini.
root@ns3:~ # pkg install perl5
root@ns3:~ # cd /usr/ports/security/openssl
root@ns3:/usr/ports/security/openssl # make config
root@ns3:/usr/ports/security/openssl # make install clean
Di FreeBSD terdapat banyak aplikasi yang mirip dengan OpenSSL, seperti ca_root_nss, LibreSSL, dan lain-lain. Agar FreeBSD secara default menggunakan keamanan OpenSSL untuk mengenkripsi dan mendekripsi, di /etc/make.conf Anda mengetik perintah berikut.
DEFAULT_VERSIONS+=ssl=openssl
2. Buat file server.crt dan server.key
Langkah pertama yang harus Anda lakukan agar Apache dapat terhubung ke OpenSSL adalah membuat file server.key dan server.crt. Untuk melakukannya, pertama-tama kita membuat folder SSL.root@ns3:~ # cd /usr/local/etc/apache24
root@ns3:/usr/local/etc/apache24 # mkdir -p ssl
root@ns3:/usr/local/etc/apache24 # cd ssl
Generate server.key using openssl.Instal Dependensi
root@ns3:/usr/local/etc/apache24/ssl # openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus (2 primes)
..+++++
.............................................+++++
e is 65537 (0x010001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
Selanjutnya, buat file permintaan sertifikat, yaitu "server.csr", proses pembuatan file ini akan menggunakan file server.key di atas.
root@ns3:/usr/local/etc/apache24/ssl # openssl req -new -key server.key -out server.csr
Langkah terakhir adalah membuat sertifikat ssl yang ditandatangani sendiri (server.crt) menggunakan file server.key dan server.csr di atas.
root@ns3:/usr/local/etc/apache24/ssl # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
3. Mengktifkan mod SSL
Petunjuk di bawah ini akan memandu Anda untuk mengaktifkan mode SSL di Apache. Tujuannya adalah agar OpenSSL dan Apache dapat berkomunikasi satu sama lain untuk mengamankan server web Anda.Di hampir semua sistem operasi, file konfigurasi Apache disebut "httpd.conf", satu-satunya perbedaan adalah lokasi file tersebut. Di FreeBSD, file ini berada di direktori "/usr/local/etc/apache24", buka file tersebut dan aktifkan skrip SSL di dalam file tersebut, seperti pada contoh di bawah ini.
LoadModule ssl_module libexec/apache24/mod_ssl.so
LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
Include etc/apache24/extra/httpd-ssl.conf
Pada skrip di atas, kita mengaktifkan file httpd-ssl.conf. Buka file tersebut dan hapus semua isi skrip, lalu masukkan skrip di bawah ini ke dalam file "/usr/local/etc/apache24/extra/httpd-ssl.conf".
Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLHonorCipherOrder on
SSLProtocol all -SSLv3
SSLProxyProtocol all -SSLv3
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/var/run/ssl_scache(512000)"
SSLSessionCacheTimeout 300
<VirtualHost _default_:443>
DocumentRoot "/usr/local/www/apache24/data"
ServerName www.datainchi.com:443
ServerAdmin datainchi@gmail.com
ErrorLog "/var/log/httpd-error.log"
TransferLog "/var/log/httpd-access.log"
SSLEngine on
SSLCertificateFile "/usr/local/etc/apache24/ssl/server.crt"
SSLCertificateKeyFile "/usr/local/etc/apache24/ssl/server.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/www/apache24/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd-ssl_request.log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
root@ns3:~ # service apache24 restart
Performing sanity check on apache24 configuration:
Syntax OK
Stopping apache24.
Waiting for PIDS: 36862.
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.
Apache/2.4.58 mod_ssl (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Private key www.datainchi.com:443:0 (/usr/local/etc/apache24/ssl/server.key)
Enter pass phrase:
OK: Pass Phrase Dialog successful.
Ujian selanjutnya adalah membuka web browser "Google Chrome" dan ketik perintah "https://192.168.5.2/".
Tutorial ini menunjukkan instalasi dasar dan penggunaan mod_ssl pada server apache dengan OpenSSL. Meskipun perintahnya sangat sederhana, kemampuannya dalam melindungi server web sangat andal dan telah terbukti, karena banyak orang menggunakan OpenSSL sebagai sistem keamanan SSL pada server Apache.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar