Thursday, August 14, 2014

Web Server HTTPS : Secure HTTP Protocol pada CentOS

Pada beberapa halaman web kita sering menemukan alamat yang menggunakan “https://” seperti pada login aplikasi bank, paypal, facebook, email, dll. apakah sebenarnya https itu? dan bagaimana kita menyediakan webserver dengan fitur https?
HTTPS adalah kepanjangan dari Hypertext Transfer Protocol Secure yang merupakan sebuah protokol kombinasi antara HTTP (Hypertext Transfer Protocol) dan Cryptographic Protocol. Pada protokol ini selain menggunakan komunikasi plain text, juga menyandikan data sesi dengan menggunakan protokol SSL (Secure Socket Layer) atau Protokol TLS (Transport Layer Security). Pada umumnya Port yang digunakan adalah port 443 dan url yang digunakan adalah https://
menyediakan webserver https
Untuk menyediakan webserver berbasis https, saya mencoba melakukan instalasi pada mesin webserver dengan sistem operasi CentOS. langkah-langkahnya adalah :
1.  Mendapatkan paket aplikasi yang dibutuhkan
Paket aplikasi yang dibutuhkan adalah mod_ssl dan OpenSSL. mod_ssl adalah interface yang digunakan Apache untuk menggunakan OpenSSL. kita bisa menginstallnya menggunakan yum atau rpm.
Untuk instalasi dengan yum caranya :
1
yum install mod_ssl openssl
2.  Men-generate “self-signed certificate“
Untuk menyiapkan sebuah web server agar menerima koneksi HTTPS, administrator harus membuat sertifikat kunci publik untuk server web. Sertifikat ini harus ditandai oleh otoritas sertifikat yang terpercaya agar semua browser web bisa menerimanya koneksi HTTPS dari web server kita. Sertifikasi ini untuk menyatakan bahwa pemegang sertifikat tersebut memang merupakan sertifikat resmi. Web browser pada umumnya didistribusikan dengan sertifikat yang resmii sehingga mereka dapat memverifikasi koneksi HTTPS web server kita. Sertifikat sekuritas ini ada yang gratis (free) ada juga yang berlangganan antara US$13 – US$1.500 per tahun.
Tapi ada cara lain, yaitu membuat sertifikat kita sendiri, tetapi resikonya setiap web browser akan memberikan peringatan bahwa sertifikat milik web server kita tidak resmi. Untuk mendapatkan sertifikat sekuritas langkahnya adalah :
1
2
3
4
5
6
7
8
9
10
11
12
13
# Generate private key
openssl genrsa -out ca.key 1024
 
# Generate CSR
openssl req -new -key ca.key -out ca.csr
 
# Generate Self Signed Key
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
 
# Move the files to the correct locations
mv ca.crt /etc/pki/tls/certs
mv ca.key /etc/pki/tls/private/ca.key
mv ca.csr /etc/pki/tls/private/ca.csr
Kemudian kita harus mengupdate konfigurasi Apache SSL
1
nano +/SSLCertificateFile /etc/httpd/conf.d/ssl.conf
Mengubah path untuk mencocokkan di mana file kunci disimpan.
1
SSLCertificateFile /etc/pki/tls/certs/ca.crt
Kemudian mengatur path untuk Sertifikat Key File
1
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
restart Apache
1
service httpd restart
3.  Mengeset Virtual Host
Nah kemudian kita membuat virtual host pada webserver kita agar kita mempunyai 2 host yang berbeda dalam 1 webserver.
Misalnya kita akan mengarahkan host http port 80 ke direktori /var/www/html/ dan untuk host https port 443 ke direktori /var/www/secure/. Maka kita lakukan modifikasi pada file konfigurasi apache /etc/httpd/conf/httpd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost *:80>
        <Directory /var/www/html>
        AllowOverride All
        </Directory>
        DocumentRoot /var/www/html
        ServerName 172.18.3.184
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/pki/tls/certs/ca.crt
        SSLCertificateKeyFile /etc/pki/tls/private/ca.key
        <Directory /var/www/secure>
        AllowOverride All
        </Directory>
        DocumentRoot /var/www/secure
        ServerName 172.18.3.184
</VirtualHost>
kemudian restart Apache
1
service httpd restart
4.  Configure firewall
Langkah terakhir kita set konfigurasi firewall agar menerima request yang melalui port 443
1
2
3
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
/sbin/service iptables save
iptables -L -v

sekian, selamat mencoba

Step by Step Install SSL di cPanel

Step by Step Install SSL di cPanel

Step 1: Siapkan Email Approver
Sebelum Anda meregistrasi SSL Siapkan email untuk approval SSL yang biasanya di kirim dari penerbit SSL, tanpa email ini kita tidak akan mendapatkan SSL Resmi. contoh email yang di butuhkan pilih salah satu:
admin@ininamadomain.com
webmaster@ininamadomain.com
administrator@ininamadomain.com

Step 2: Buat KEY dan CSR (Certificate Signing Request)
Anda perlu membuat KEY, CSR pada hosting dengan login ke cpanel pilih SSL/TLS Manager klik Generate, view, or delete SSL certificate signing requests.
Kolom yang perlu di isi (ini hanya sebagai contoh):
Key: Pilih Generate a new 2,048 bit Key
Domains: contoh: www.ininamadomain.com
City: Bandung
State: West Java
Country: ID
Company: Your Company Name
Company Division: IT Consulting
Email: username@ininamadomain.com
Passphrase dan Description boleh di kosongkan. lalu klik Generate
CSR ini nanti nya akan di gunakan untuk membeli SSL ke perusahaan penerbit SSL. pada SSL/TLS Manager di cpanel klik? Generate, view, or delete SSL certificate signing requests.
Apabila step ini sudah anda lakukan, cpanel akan memberikan sebuah kode CSR. seperti di bawah ini:
SAMPLE ONLY
—–BEGIN NEW CERTIFICATE REQUEST—–
MIIDCjCCAnMCAQAwdTEZMBcGA1UEAxMQaG9zdC5kb21haW4ubmFtZTEVM
BMGA1UECxMMT3JnYW5pemF0aW9uMRUwEwYDVQQKEwxPcmdhbml6YXRpb2
4xDTALBgNVBAcTBENpdHkxDjAMBgNVBAgTBVN0YXRlMQswCQYDVQQGEwJ
VUzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAyZ1dYomQ4jhSr6f
G3GYxjS4B837+y3A6xIM9OVXV4ZnSIe9nOLHgdksQJpwaQeOZwWeqifte
hrJ/s55PvPxok+Tqq0t7BfMkkUSuiYnFdUo1OpDPdw3cEaP9WWSrduouI
Vnq2AWTDw2ykyxKg6neb2vYTZRvbot7M578Vvh6P8CAwEAAaCCAVMwGgY
KKwYBBAGCNw0CAzEMFgo1LjAuMjE5NS4yMDUGCisGAQQBgjcCAQ4xJzAl
MA4GA1UdDwEB/wQEAwIE8DATBgNVHSUEDDAKBggrBgEFBQcDATCB/QYKK
wYBBAGCNw0CAjGB7jCB6wIBAR5aAE0AaQBjAHIAbwBzAG8AZgB0ACAAUg
BTAEEAIABTAEMAaABhAG4AbgBlAGwAIABDAHIAeQBwAHQAbwBnAHIAYQB
wAGgAaQBjACAAUAByAG8AdgBpAGQAZQByA4GJACB3C0g9psK0+V+N/Me1
JsG39vonCPQBdOwNp6zHJSPCU3FwQ0SgFpEQNy6HEn79I0CMrU93q9Hh1
TQtd2YU6lWHQunXrIcytmAFVjhibNX6Dp1e41Wjc2N4ilJyy1GFss686c
dZt2GP6y04I74/OvkW2Wf9nezUrMrESM2PP4B1AAAAAAAAAAAwDQYJKoZ
IhvcNAQEFBQADgYEAg4+QHTvkP5CG+WcGnrhKiMkJnMP6QEsds40obUDS
dGtEupQz8C+4xoMd1aM68q9Ri6Va+JTeuhKHxLz9hT/KUJhNBy0sRfnx+
JkQdrKG69UanTwvLqXINh9xChw9ErIto/2kZI5kl2KYQdiOqTv6p0GEUP
Rq/MD52Zy3bOzSRF0=?
—–END NEW CERTIFICATE REQUEST—–
Step 3: Install SSL
Setelah anda mendapatkan SSL Resmi dari penerbit, kini saatnya untuk menginstall SSL pada hosting anda. upload CRT pada kolom isian Certificate pada cPanel. klik? Generate, view, upload, or delete SSL certificates.

SAMPLE ONLY
—–BEGIN CERTIFICATE—–
MIIFDzCCA/egAwIBAgIDBE4KMA0GCSqGSIb3DQEBBQUAMDwxCzAJBgNVBAYTAlVT
MRcwFQYDVQQKEw5HZW9UcnVzdCwgSW5jLjEUMBIGA1UEAxMLUmFwaWRTU0wgQ0Ew
HhcNMTExMjA2MjM1MDI2WhcNMTIxMjA4MTYyMzE2WjCB/zEpMCcGA1UEBRMgLVE2
U0N2amJ4SFhQWDFjNUNFbDlKU1NnYkRtSm5IU0UxCzAJBgNVBAYTAklEMSUwIwYD
VQQKExx3d3cucmlyaWNvbGxlY3Rpb25ib25la2EuY29tMRMwEQYDVQQLEwpHVDgy
NDA5MDk3MTEwLwYDVQQLEyhTZWUgd3d3LnJhcGlkc3NsLmNvbS9yZXNvdXJjZXMv
Y3BzIChjKTExMS8wLQYDVQQLEyZEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQgLSBS
YXBpZFNTTChSKTElMCMGA1UEAxMcd3d3LnJpcmljb2xsZWN0aW9uYm9uZWthLmNv
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMrp2varrykFoUalYkeZ
XZ6A7LpeghPuXTzgeFtZp4sEuOCXLTt1EClpsM1AEkafWcfsk8l3fPecbqmxjJzz
yhMhdeMZ3I3NEGlleBhQviQ9Ca9j79rRS8i7a4mOKs2pHyAqdU4U0YnjLf5AzfyS
izrr1VcxZYn3fX0/cnLR+9KluSSzZb96P+rBnjRIMmo4wLG2Ps1/XziXwYCVsxgC
ZYUmYBkxqFni/AEhfJrifu+gRcIXnpGdJwZYxnE7xHzSZ2D5+8GvJZI1RmjGyLXp
FeuZuudbPXygS7dqUdnKg7DwIjd6EA7HHYazWvZP7vVAQoeH67dFbXpZSP2uImUU
mAsCAwEAAaOCAVQwggFQMB8GA1UdIwQYMBaAFGtpPWoYQkrdjwJlOf01JIZ4kRYw
PJhZc/vNR6sz5UhIeHchXfcoXu9nk+jklSFoW6JjtiZRrq9j+YdDFEgFBMtWU/Gf
Obj1/hpsRTVVSh0VNRnNzy3V9V0lupvCqO2SKlCeFFSxaXeTgxb7oFhPW615/d2q
T7WRtUhtuyfjgOBYpJMeu1lyoF/2LUJ7/irGV61W5Hlv1dnt0eaqHbnRn11tTjDs
iaAn
—–END CERTIFICATE—–
Step 4: Aktifasi SSL ke HTTPS
Semua sudah selesai. kini saatnya anda mengaktifkan fitur HTTPS pada website anda. pada SSL/TLS manager klik? Setup a SSL certificate to work with your site.
pilih nama domain yang ingin di setup SSLnya. misal: secure.ininamadomain.com
kemudian klik Install Certificate yang terdapat di bagian bawah kolom. apabila install berhasil silahkan untuk mencoba akses https://secure.ini namadomain.com pada web browser anda.


sumber indonetmedia