Seting unsigned ssl pada nginx

Berikut ini adalah cara seting unsigned ssl dengan webservice menggunakan nginx. saya asumsikan nginx anda sudah terinstall. Langsung saja masuk ke direktori conf nya nginx di /etc/nginx/conf.d

backup kemudian hapus semua file yang berakiran .conf

kemudian di ssl.conf isi seperti ini

#
# HTTPS server configuration
#
server {
listen 443 default deferred;
server_name 172.18.14.x; #ip ssl
proxy_pass_header Server;

# auth_basic “Restricted”;
# auth_basic_user_file /etc/nginx/conf.d/.htpasswd;

ssl on;

ssl_certificate /etc/nginx/cert/server.crt;
ssl_certificate_key /etc/nginx/cert/server.key;

ssl_session_cache shared:SSL:50m;
ssl_session_timeout 5m;

# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/cert/dhparam.pem;
ssl_ciphers “EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4″;

# OCSP Stapling
#ssl_stapling on;
#ssl_stapling_verify on;
#resolver 8.8.4.4 8.8.8.8 valid=300s;
#resolver_timeout 10s;

# HTTP Strict Transport Security
add_header Strict-Transport-Security max-age=63072000;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection “1; mode=block”;
add_header Public-Key-Pins ‘pin-sha256=”oNjWucIG3GySyZEWXu9Ov7TaWSMCBQBJGEiET1ne+Rg=”; max-age=2592000; includeSubDomains';

location / {

proxy_pass https://172.18.14.37:8081;#ip web
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
send_timeout 300;
proxy_read_timeout 300;
proxy_connect_timeout 300;
error_page 502 /50xweb.html;
}

location /ib {
proxy_pass https://172.18.14.37:8081;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
send_timeout 300;
proxy_read_timeout 300;
proxy_connect_timeout 300;
error_page 502 /50xweb.html;
}

error_page 403 /40x.html;
location = /40x.html {
root /usr/share/nginx/html;
}

location = /50xweb.html {
root /usr/share/nginx/html;
}
location = /undermaintenance.jpg {
root /usr/share/nginx/html;
}
location = /50xjson.html {
root /usr/share/nginx/html;
}

## Only allow these request methods ##
if ($request_method !~ ^(GET|POST)$ ) {
return 444;
}

}

—–

langkah selanjutnya adalah generate ssl certificate. caranya pindah ke direktori /etc/nginx/cert, kalau belum ada silahkan buat dulu. selanjutnya jalankan saja perintah-perintah berikut ini

sudo openssl genrsa -des3 -out server.key 1024
sudo openssl req -new -key server.key -out server.csr
sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
openssl dhparam -out dhparam.pem 4096

setelah itu restart nginx anda

Continue Reading

Setup VPS VULTR Mulai Dari Awal Sampai Selesai

Halo, jumpa lagi :)

Jika sebelumnya kita sudah bahas cara setup vps di digitalocean mulai dari awal sampai selesai kali ini kita akan pelajari bagaimana caranya setup VPS di VULTR mulai dari 0 sampai dengan selesai.

Dipembahasan sebelumnya kita menggunakan vestacp sebagai control panel. Kali ini agak berbeda, kita akan menyelesaikan semuanya sampai terinstall wordpress dan berjalan dengan baik tanpa menggunakan control panel. Lalu apa keuntunganya jika tanpa menggunakan control panel? tentu saja lebih irit resource. Tak perlu panjang lebar, kita mulai saja. Secara garis besar ini yang nanti akan kita kerjakan.

  1. setting dns
  2. Install apache di vps vultr
  3. install database mysql di vps vultr
  4. install php di vps vultr
  5. install wordpress di vps vultr

oh ya, untuk OS nya saya pakai ubuntu 14.04 yang 32 bit. Sebelum lanjut ke step pertama ada baiknya VPS anda tambahin dulu swap file nya biar lebih enteng nantinya, silahkan lihat artikel kita yang tentang cara menambah swap di ubuntu.

oke sebelum mulai install apache kita perlu seting dns di vultr caranya masuk ke vultr kemudian klik link dns kecil di bagian bawah, di sebelah kanan ssh keys, dll. Masukkan nama domain dan ip nya di bagian add domain.

Kemudian pada bagian add new record (di bawah) tambahkan
type: A
name:www
data:ip address
ttl:300

kemudian pencet tombol add.

Langkah di atas supaya domain anda bisa diakses baik memakai www maupun tanpa www. Jika sudah maka kita bisa mulai pembahasan yang pertama yaitu install apache.

Oke kita mulai pembahasan yang pertama, Install apache di vps vultr.

Gampang banget tinggal ketik saja perintah di bawah ini.

sudo apt-get install apache2

Tunggu saja sampai selesai, kemudian lanjut ke step kedua, install database mysql.

sudo apt-get install mysql-server

Tunggu sampai installasi mysql di vps anda selesai, selanjutnya ke step ke 3, install PHP. Loh dah sampe step ke 3 ya hehe gampang banget kan. Untuk install php tinggal jalankan perintah ini.

sudo apt-get install php5 libapache2-mod-php5

Tunggu sampai selesai. Jika sudah sekarang coba akses website anda, jika sudah betul maka seharusnya muncul halaman default apache2.

Sekarang lanjut ke step terakir yaitu install wordpress di vps vultr.

Pertama kita perlu download script wordpress yang terbaru dari webnya dan taruh di var/www caranya seperti ini.

pindah directory
# cd /var/www/html

hapus file index.html
# rm -rvf index.html

download wordpress source code
# wget http://wordpress.org/latest.zip

unzip source code wordpress
# unzip latest.zip

jika perintah unzip belum tersedia install dulu dengan cara seperti ini
# sudo apt-get install unzip

pindah semua file di folder wordpress
# mv -vf wordpress/* ./
hapus folder wordpress
# rm -rvf wordpress/

# cp wp-config-sample.php wp-config.php

oke, sebelum setting file wp-config kita perlu buat dulu databasenya. caranya gampang, ikuti saja ini.

masuk ke mysql
# mysql -p

buat database
mysql> create database db_name;

setting wp-config
# nano wp-config.php

Nah selesai, sekarang coba lagi akses website anda, seharusnya masuk ke installasi wordpress.
oh ya jangan lupa domainnya diarahin ke nameservice nya vultr ya ke ns1.vultr.com, ns2.vultr.com

Beberapa error yang sering muncul dan solusinya

 

1.

Your PHP installation appears to be missing the MySQL extension which is required by WordPress

jika muncul error seperti di atas artinya module mysql untuk php5 belum terinstall. cek dulu apa sudah terinstall atau belum

# dpkg --list | grep php5-mysql

jika tidak ada maka install dulu
# apt-get install php5-mysql

restart apache
# /etc/init.d/apache2 restart

2. tidak bisa install plugin

ganti owner dari source code wordpress ke www-data
/var/www/html# chown -R www-data:www-data ./*

3. curl belum terinstall
root@vultr:~# dpkg --list | grep php5-curl
root@vultr:~# sudo apt-get install php5-curl

4. custom permalink tidak jalan (404)
silahkan lihat artikel kita sebelumnya tentang permalink 404 not found

Sekian kalau bingung silahkan tanya lewat kolom komentar ya. Kalau berkenan mau daftar lewat link affiliate saya terima kasih banget loh, enggak juga gapapa sih hehe :)

Continue Reading

WordPress Permalink Error 404 Not Found

Install wordpress di VPS kemudian ketika akses ke halaman postingan muncul error 404 not found? tapi ketika permalink diubah ke settingan default error 404 not found tidak muncul, error hanya muncul ketika menggunakan setting custom permalink? berikut ini solusinya.

solusi pertama, check apakah file .htaccess kamu ownernya sudah www-data atau belum dengan comman ls -la. kalau belum ubah ownernya dan file permissionya jadi 666 dengan command line berikut ini.

$ chown -R www-data:www-data .htaccess

$chmod -R 666 .htaccess

Kemudian coba save setting permalink di wordpress kamu.

coba refresh browser anda, kalau masih 404 maka lanjutkan ke solusi kedua ini.

solusi kedua, jalankan perintah di bawah ini untuk mengaktifkan modul a2enmod

sudo a2enmod rewrite
sudo service apache2 restart

Kamu kemungkinan perlu juga untuk setting file configurasi apache, caranya

sudo nano /etc/apache2/apache2.conf

kemudian cari baris script yang seperti ini

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

pastikan allowoverride nya all

kemudian restart lagi apache nya. sekarang coba lagi akses halaman posting wordpress kamu menggunakan permalink custom, kemungkinan besar masalahnya sudah solve.

Continue Reading

Cara Seting VPS di Digital Ocean Mulai Dari 0 Sampai Website Live

Berikut ini adalah step by step super komplit disuapin cara seting VPS di digital ocean mulai dari 0 putul sampai website live. Secara garis besar berikut adalah step by step nya yang kemudian akan saya jabarkan lebih mendalam per step nya.

  1. mengarahkan nameserver ke nameserver digitalocean
  2. create droplet
  3. seting DNS
  4. install controll panel
  5. install wordpress

Nah untuk detailnya ada di artikel di bawah ini

1) Arahkan nameserver pada regristar domain ke nameserver digital ocean

Dalam hal ini saya menggunakan namecheap sebagai registrarnya. Untuk mengubah nameserver silahkan login ke akun namecheap anda kemudian pada menu “menu” di pojok kanan atas pilih “manage domains”.

Pilih domain yang ingin anda arahkan nameserver-nya ke nameserver digitalocan.

Pilih menu “transfer DNS to webhost”.

Pada bagian “Specify Custom DNS Servers” isikan nameserver dari digitalocean yaitu:

  • ns1.digitalocean.com
  • ns2.digitalocean.com
  • ns3.digitalocean.com

Step ini biasanya butuh waktu propagation maksimal 24 jam agar setingan di atas ngefek.

2)  create droplet di digitalocean

Silahakan masuk ke akun digitalocean anda kemudian klik tombol “create droplet”.

  • beri nama droplet anda pada bagian droplethostname
  • pada bagian select size silahkan pilih paket mana yang ingin anda pakai. Jika ini adalah pertama kali anda mencoba silahkan coba yang paling murah dulu saja.
  • pada bagian select region silahkan pilh letak server vps yang anda inginkan.
  • Pada bagian distribution anda bisa memilih sistem operasi yang ingin anda gunakan. Dalam hal ini saya pilih ubuntu 14.04 32 bit. Saya pilih 32 bit karena paket droplet saya yang paling murah RAM nya hanya 512MB saja.
  • klik “create droplet”

tunggu kurang lebih 1 menit maka droplet anda akan selesai dibuat dan anda mendapatkan email berisi credential (username/password) yang bisa anda pakai untuk login ke droplet anda. Catat username, password, dan data lainnya di email tersebut jangan sampai hilang.

Jika droplet sudah sukses di create halaman digitalocean anda akan menjadi seperti ini.

Screen Shot 2015-02-23 at 11.57.27 AM

3) Seting DNS

Klik menu DNS (sebelah kiri) pada akun digitalocean anda, kemudian klik tombol “add domain”.

  • Pada bagian “name” isi dengan nama domain anda, misal ngehosting.com (tanpa www)
  • pada bagian ip address isi dengan ip address droplet anda (ada di email)
  • kemudian pilih droplet yang baru saja kita buat di atas.
  • klik “create domain”

Selanjutnya supaya web kita nanti nya bisa diakses dengan menggunakan www maupun tanpa www maka kita tambahkan 1 record lagi.

  • klik tombol “add record”
  • isi bagian name dengan www bagian ip address dengan ip address yang kita dapat di email
    Screen Shot 2015-02-23 at 1.58.12 PM
  • kemudian klik tombol “create”

 4) Install vestacp sebagai pengganti cpanel

Untuk controll panel disini saya akan menggunakan vestacp. Sebenarnya ada banyak pilihan controll panel yang bisa anda pakai mulai dari yang berbayar seperti cpanel maupun yang gratisan seperti webuzo, dll.

Kenapa vestacp? sebenarnya ini masalah selera saja, pilihan saya yang gratisan ada 2 yaitu webuzo dan vestacp. Dulu sempat install webuzo tapi ternyata script saya yang butuh curl tidak bisa jalan. Kemudian webuzo fiturnya sangat-sangat lengkap, bahkan fitur-fitur yang tidak saya perlukan pun banyak sekali terinstall seperti cms-nya tersedia banyak sekali padahal saya cuma butuh wordpress saja. Tentu saja hal tersebut memberatkan resource VPS saya.

Alasan lainnya vestacp sangat ringan karena minim sekali viturnya. Untuk awal-awal memang terlihat agak bingung dan tidak user friendly tetapi setelah paham ternyata simple kok. Selain itu kelebihan vestacp dia menggabungkan antara apache dan nginx untuk web service nya. mantab kan?

Oke, kita lanjut bagaimana cara install vestacp di VPS digitalocean.

Pertama kita perlu remote SSH ke VPS. Jika anda menggunakan windows bisa menggunakan putty, jika anda pengguna mac atau linux bisa remote langsung lewat terminal/console.

Ketikkan perintah di bawah ini untuk remote SSH ke VPS digitalocean
$ ssh root@162.243.248.114

Are you sure you want to continue connecting (yes/no)? yes

kemudian anda akan diminta untuk mengubah password. lakukan perubahan.

# curl -O http://vestacp.com/pub/vst-install.sh

bash vst-install.sh

Anda akan disuruh untuk mengisi beberapa field seperti email dan hostname.

Do you want to proceed? [y/n]): y
Please enter valid email address: ngehosting@gmail.com
Please enter hostname [ngehosting]: ngehosting.com

Jika sukses maka anda akan mendapatkan pesan seperti ini.

Congratulations,
you have successfully installed Vesta Control Panel.

nah, di atas pesan itu ada beberapa info penting yang harus anda catat yaitu url, user, dan password yang bisa anda gunakan untuk login ke vestacp anda.

Sekarang coba akses vestacp anda. Jika anda menggunakan chrome maka akan muncul pesan seperti error, seperti dibawah.

Screen Shot 2015-02-23 at 2.46.14 PM

 

Tidak perlu kawatir, klik saja “proceed to xyz (unsafe)”

Selanjutnya masih di halaman vestacp setelah login, klik menu admin yang ada pada pojok kanan atas. Ganti password dengan password yang mudah anda ingat.

Pada default nameservers isi dengan:

ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com

kemudian save.

Sekarang klik menu “web” dan “add web domain” (sorry di gambarnya salah, yang saya lingkari edit harusnya “add web domain”)

Screen Shot 2015-02-23 at 2.52.15 PM

Isi domain dengan nama domain anda misal ngehosting.com, kemudian klik “add” (silahkan lihat advance option jika ingin menambah fitur lainnya)

Sekarang klik menu “database” kemudian klik “edit” pada database admin_default kemudian ganti passwordnya.

5) Install WordPress

Controll panel sudah punya, database juga sudah punya, untuk selanjutnya kita bisa install wordpress. Caranya kita kembali ke remote SSH.

Pada terminal atau putty kita pindah directory ke directory “public_html”, caranya:

# cd /home/admin/web/ngehosting.com/public_html
isi ngehosting.com dengan nama domain anda.

download package wordpress paling terbaru

# wget http://wordpress.org/latest.zip
# ls
index.html latest.zip robots.txt

Sebelum kita extract kita hapus dulu file default index.html dan robots.txt nya
# rm -rvf index.html
# rm -rvf robots.txt

Sekarang kita extract file .zip nya

# unzip latest.zip
hapus file lates.zip
# rm -rvf latest.zip
selanjutnya kita pindahkan semua file hasil extract tadi yang berada di folder wordpress ke directory tempat kita berada saat ini.
# mv wordpress/* ./
hapus folder wordpress
# rm -rvf wordpress/
# cp wp-config-sample.php wp-config.php

edit file wp-config.php
# nano wp-config.php
isi data database sehingga menjadi seperti ini
/** The name of the database for WordPress */
define('DB_NAME', 'admin_default');

/** MySQL database username */
define(‘DB_USER’, ‘admin_default’);

/** MySQL database password */
define(‘DB_PASSWORD’, ‘xyz’);

/** MySQL hostname */
define(‘DB_HOST’, ‘localhost’);

tekan ctrl x, kemudian y untuk meinyampan

sekarang coba akses website anda melalui web browser dengan mengetikan domain name nya (misal ngehosting.com), biasanya masih belum bisa karena dns nya masih propagasi. Jika belum bisa coba akses dengan alamat IP nya yang kita dapatkan di email. Seharunya sampai sini anda akan mendapatkan halaman install wordpress. silahkan di isi semua dan klik next. voillaa… web anda sudah live dan bisa diakses melalui ip address. Selanjutnya anda tinggal nunggu saja DNS propagation supaya web bisa diakses dengan nama domainnya. biasanya kurang dari 24 jam.

Gimana cara seting VPS di digitalocean nya? mudah bukan?

Continue Reading

Solusi Space VPS Cepat Habis

Pertama menggunakan VPS agak kaget juga ketika space terasa cepat sekali habisnya. Menggunakan VPS dengan space 10G dengan menggunakan control panel vestacp yang mana control panel vestacp konon adalah control panel yang palaing light weight (ringan) dan hemat space tapi ternyata space VPS 10G cepat sekali habil. Padahal hanya diinstall 1 website saja. Bagaimana solusinya?

Solusinya adalah tentu saja mencari file apa sebenarnya yang banya memakan space di VPS kita. Untuk mencari file mana yang berukuran besar anda bisa menggunakan perintah berikut ini.

 
du -h / --max-depth=1

Hasilnya kira-kira seperti ini:

1.3G /usr
8.0K /data
4.0K /mnt
8.0K /media
7.9M /etc
8.0K /srv
16K /lost+found
4.0K /dev
5.5G /home
93M /boot
12M /sbin
687M /var
28K /tmp
649M /lib
9.6M /bin
376K /run
0 /sys
4.0K /opt
4.0K /lib64

Nah dari situ ketahuan folder mana saja yang ukuranya cukup besar. Biasanya vestacp melakukan backup rutin setiap hari dan ini tentu saja memakan banyak space. Selain itu cek juga file-file log error biasanya cukup besar jika VPS anda sering mengalami error.

Setelah perintah di atas gunakan perintah seperti ini untuk men-tracking lebih dalam lagi dari folder-folder di atas.

du -h /home/ --max-depth=1

/home/ bisa anda ganti dengan nama folder yang memakan space paling banyak di VPS anda. Kalau di VPS saya folder setelah saya lakukan perintah di atas ternyata folder /home/backup/ yang memakan banyak sekali space. Setelah ketemu anda bisa menghapus file-file yang memakan banyak space tersebut, tentunya pastikan dulu VPS anda tidak terpengaruh jika anda menghapus file tersebut.

Continue Reading