2018

Kamis, 11 Oktober 2018

CARA KONFIGURASI 2 DOMAIN HTTPS DALAM 1 (SATU) TOMCAT8 WEB SERVER PADA LINUX 16.04


Kali ini saya mau membuat bagaimana caranya 2 (dua) domain mengakses ke 1 (satu) server dalam 1 (satu) TOMCAT. ini juga nyambung dengan tutorial yang buat sebelumnya yaitu  CARA MEMBUAT AKSES DOMAIN HTTPS PADA TOMCAT 8 WEB SERVER - SSL CONFIGURATION DI LINUX UBUNTU 16.04 . Akhirnya saya bisa melakukannya setelah sempat gagal sekali hahaha... ternyata usaha keras digantikan dengan hasil yang Luar biasa . :)

Sebelumnya saya kira tidak bisa dalam satu tomcat. karena saya baca-baca referensi bisa dilakukan pada versi 8.5 atau 9 padahal versi TOMCAT yang saya gunakan TOMCAT 8.0. ternyata sangat mudah :) langsung ajah

1. Tentunya sudah punya The Second Domain untuk menuju server yang sama
2. Pastikan juga sudah melakukan langkah-langkah untuk sertifikatnya, bisa dibaca ini CARA MEMBUAT AKSES DOMAIN HTTPS PADA TOMCAT 8 WEB SERVER - SSL CONFIGURATION DI LINUX UBUNTU 16.04

3. Setting Connector nya di TOMCAT nya


 * Setting domain  Connector 1 

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="conf/certs_2018/namadomain_1.jks" keystorePass="4wdUNI1tbd" disableSessionTickets="true" useBodyEncodingForURI="true" />

 * Setting domain  Connector 2

<Connector port="8123" protocol="HTTP/1.1"
               connectionTimeout="20000"
               URIEncoding="UTF-8" SSLEnabled="true" scheme="https" keystoreFile="conf/certs_domain_2/namadomain_2.jks" keystorePass="4wdUNI1tbd" clientAuth="false" sslProtocol="TLS"
               redirectPort="8443" />




5. Restart tomcat nya
6. Langkah berikutnya Jangan Lupa settingan IP si domain kedua di NAT nya
    misal IP 112.90.234.555 maka port public (destinationnya) 443 lalu port Source nya (sumber) port      8123 (sesuai di settingan TOMCAT nya di file SERVER.XML) 

       ---------------------------------------NAT IP ------------------------------------------------

   


7. SELESAI :)

   Cukup sekian sharing ilmu saya kali ini, semoga tutorial ini bisa membantu teman-teman semuanya. see you in the next tutorial guys :)



Rabu, 10 Oktober 2018

CARA MEMBUAT AKSES DOMAIN HTTPS PADA TOMCAT 8 WEB SERVER - SSL CONFIGURATION DI LINUX UBUNTU 16.04


Hallo semuanya kali ini saya mau berbagai sedikit tentang   CARA MEMBUAT AKSES DOMAIN HTTPS  PADA TOMCAT 8 WEB SERVER    

Disini saya melakukannya pada server Linux Ubuntu 16.04 , Tomcat 8 Web Server

1. Tentunya siapkan dahulu domain yang dipakai untuk mengakses aplikasi nya
    Sesudah kalian beli domainnya dan IP nya mengarah ke server Linux dimana Tomcat web server        nya sudah ada disana

2. Beli Sertifikat https nya, disini saya menggunakan sertifikat COMODO yang dibeli dari COMODO SSL STORE

3. Setelah kalian sudah membeli Sertifikat, oh ya disni saya membeli sertifikat produk nya PositiveSSL (DV) 

4. Setelah Login Pada web tersebut terdapat menu "Incomplere Orders" , maka akan tampil list produk yang kalian beli. lalau klik generate cert ,

5. Disana akan diperintahkan untuk memasukkan isi dari file CSR yang sudah kita buat pada server

    UNTUK MEMBUAT FILE CSR DAN JKS/KEYSTORE PADA SERVER:

    1. Untuk file CSR dah JKS nya bisa dimana saja, api lebih baik langsung di /var/lib/tomcat8/conf   lalu buat folder                     disana. misal certs_2018. lalu masuh ke folder certs_2018 
         
        sudo keytool -genkey -alias server -keyalg RSA -keysize 2048 -keystore your_site_name.jks 

      Untuk alias bisa dipakai, bisa juga tidak, yang penting adalah konsisten. saat signing file crt pada        tahap akhir nanti harus memakai nama alias yang sama

    Pada tahap diatas maka akan mengisi beberapa keterangan data, 
    - Nama Depan dan Akhir (diisi dengan domain misal www.domain-kantor.co.id) 
    - Organisasi UNIT (misal IT, atau bebas)
    - Nama Organisasi (Nama Perusahaan)
    - Lokasi (kota)
    - Provinsi
    - Kode Negara (ID)
    
    Lalu akan memasukkan password keystore, Nah ini tidak boleh lupa karna akan dipakai untuk connector https nya tenttunya bahkan saat signing atau import sertifikat.

  2. Maka selanjutnya create file CSR nya , dengan script berikut 
      sudo keytool -certreq -alias nama_alias -file csr.txt -keystore your_site_name.jks
       


6. Pada tahap diatas, flle CSR sudah dibuat, maka ambil isi file CSR tersebut lalu paste di CSR pada web mereka saat generate cert

7. Setelah klik continue lalu akan mengarah ke tahap kedua, disana akan ada download File   karena itu nnti akan kita upload pada ROOT server.


7. untuk approval pilih HTTP-Base

8. setelah isi data dengan benar, maka selanjutnya upload file pada ROOT server   

9.  pada server masuk ke /var/lib/tomcat8/webApps     . Lalu create folder dengan nama .well-known  lalu didalam folder       tersebut create lagi folder pki-validation lalu buat file dengan nama                                                                                       contoh D31E5065F3B041CD4DFDB1A3B43FD2F1.txt
     
    Untuk Isi file nya itu bisa dilihat isi file yang di download tadi, atau bisa hubungun CS store nya.
    biasanya isinya contoh:

    75F97876E35C075A272FKLIU20D58JKLI2166HH3B98F6KK72F07986D86EF7AE2
  comodoca.com
  U6mpFXQB88e557l5YVwh

     http://domain_anda/.well-known/pki-validation/D31E5065F3B041CD4DFDB1A3B43FD2F1.txt

10. Untuk memastikan sudah benar upload datanya, coba akses link nya. jika muncul isi file nya , berrti upload file sudah           benar
11. Tunggu File Sertifikat (bundle) Dari Store Comodonya nya
12. Oh ya jangan lupa file CSR dan JKS nya dibackup dahulu di folder lain
13. Setelah file-file sertifikat nya sudah dikirim oleh Store Comodo nya, download lalu masukkan file2 tersebut ke 
      /var/lib/tomcat8/conf/certs_2018
     

14. Lalu import file2 atau disebut (Installing SSL Certificate Chain (Root, Intermediate(s) and the End Entity) tersebut dengan cara berikut:

     - Import ROOT sertifikat
     
      sudo keytool -import -trustcacerts -alias AddTrustExternalCARoot -file                                                     AddTrustExternalCARoot.crt -keystore domain.jks

    - Import Intermediate-Intermediate nya
        biasanya ini ada 2 file yaitu
       1. COMODORSAAddTrustCA.crt
       2. COMODORSADomainValidationSecureServerCA.crt

        lakukan import data-data tersebut dengan cara:

       sudo keytool -import -trustcacerts -alias intermediate_filename -file                                                  intermediate_filename.crt -keystore domain.jks

       Lakukan pada masing2 file tersebut, yang pertama:
         sudo keytool -import -trustcacerts -alias COMODORSAAddTrustCA -file                                               COMODORSAAddTrustCA.crt -keystore domain.jks

        Yang kedua:
   
  sudo keytool -import -trustcacerts -alias COMODORSADomainValidationSecureServerCA -file       COMODORSADomainValidationSecureServerCA.crt -keystore domain.jks
      

          - Import Entity/Domain Certicate

   sudo keytool -import -trustcacerts -alias nama_alias -file yourDomainName.crt -keystore domain.jks
   
     Ini merupakan langkah akhir, ini file nya biasanya sama dengan nama domainnya.crt 
     Untuk nama alias diatas adalah nama alias ketika kalian membuat file CSR

15. Setelah semua dilakukan dengan benar, maka saatnya untuk konfigurasi pada tomcat nya dengan cara masuk ke directory /var/lib/tomcat/conf     lalu sudo vim server.xml

     
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="conf/certs_2018/nama_domain.jks" keystorePass="password keystorenya" disableSessionTickets="true" useBodyEncodingForURI="true" />

16. setelah melakukan konfigurasi tomcat, maka restart tomcat web server nya
17. Pastikan bahwa IP yang mengarah ke sidomain tersebut sudah di NAT
      Destination nya IP PUBLIC NYA PORT 443 , Source nya IP LOKAL dengan port 8443

18. Akses domain nya dengan mengggunakan https://namadomain.co.id
19. SELESAI


Nah.. sekian sharing kali ini, semoga bermanfaat buat teman-teman semuanya. Boleh di Like comment dan di share :). sampai bertemu di tutorial berikutnya .... byeee :)



Selasa, 25 September 2018

CARA MEMBUAT FOLDER VENDOR LARAVEL PADA SAAT CLONE DARI GITLAB DI LINUX UBUNTU 16.04


Cara ini yaitu untuk menjalankan Project laravel pada linux menggunakan Xampp/Lamp. Nah saya biasanya membuat suatu repository pada gitlab atau github untuk mempermudah eksekusi pada setiap perubahan script di project. Kendala yang saya hadapi ketika saya clone project dari gitlab setelah koneksi semua cek sudah aman, maka muncul eror blablalba vendor/. Nah jika teman-teman juga mengalami hal yang sama, berikut langkah untuk mengatasinya:

1. Masuk directory project

   cd /opt/lampp/htdocs/mobile_laravel

   untuk memastikan ada apa tidaknya folder Vendor nya maka ketikan perintah ini

   ls -a atau hanya  ls  saja

2. Jika memang Folder Vendor tidak ada maka jalankan perintah ini:

    composer install --ignore-platform-reqs

3. Selesai :)


CARA CEPAT DAN MUDAH MEMBERSIHKAN INSTALASI DAN INSTALL ULANG POSTGRESQL DI LINUX UBUNTU 16.04


Cara ini Saya gunakan untuk menghapus postgresql-9.5 pada LINUX UBUNTU 16.04 . Jika teman-teman memiliki version yang berbeda, sepertinya teman-teman hanya butuh ubah versinya saja pada comman line nya. Berikut adalah langkah-langkahnya:

sudo apt-get  --purge remove postgresql-client-9.5


Apabila data posgresql nya belum benar-benar bersih maka masukan perintah ini:

sudo apt-get  --purge autoremove postgresql-client-9.5

atau

sudo apt-get  --purge autoremove postgresql*


Lalu hapus document - document yang berhubungan dengan postgres nya serta common-common:

sudo apt-get --purge autoremove postgresql postgresql-doc postgresql-common


Setelah melakukan cara diatas biasanya masih ada sisa data postgresqlnya. Caranya adalah teman-teman cek data direktori nya dengan perintah berikut.

 cd var/lib/postgresql

Jika masih ada folder postgresql nya maka hapus folder tersebut dengan cara:
 
rm -rf   /var/lib/postgresql


Setalah melakukan semua tahap tersebut maka instalasi dari postgresql akan bersih dan jika teman-teman ingin install ulang kembali maka dengan cara perintah ini:

sudo apt-get install postgresql-9.5


CARA MUDAH REPLIKASI DATABASE MENGGUNAKAN PROSTGRESQL DI LINUX UBUNTU 16.04


Hallo semua, kali ini saya mau bahas tentang bagaimana cara replikasi database dengan postgresql pada LINUX UBUNTU 16.04. Apasih Replikasi database dan kegunaannya apa?

Replikasi Database adalah suatu cara yang dilakukan untuk back-up data yang ada pada database secara real-time. Pada Replikasi Database ini mengunakan sistem :

1. Master to Slave 
Master sebagai server utama dan Slave sebagai backup atau penampung data dari master. server          slave tersebut hanya sebagai read-only , tidak ada kegiatan tambah,hapus atau ubah disana.

2. Master to Master
Ini dikenal dengan 4 server misal (server A, B, C, D) ketika serve A sebagai master maka server B,C dan D akan sebagai Slave. jika kita menambah data di server A maka data tersebut juga akan bertambah di server B,C dan D. begitu juga sebaliknya dengan server B,C dan D. Okay semoga mengerti ya . Langsung ajah berikut apa saja yang diperlukan dan keterangan server yang saya gunakan:

* Linux Ubuntu 16.04
* Postgresql-9.5
* 2 Server  dengan OS (Ubuntu 16.04)
   - 10.1.1.2 (Master)
   - 10.1.1.3 (Slave)


I. Install dan Konfigurasi Server Master


1. Install terlebih dahulu postgresql dengan command line dibawah ini


    sudo apt-get install postgresql-9.5


2. Jika Instalasi sudah complete, maka langkah selanjutnya adalah pastikan bahwa postrgesql nya          sudah terhubung. Ikuti command line berikut  menggunakan user ROOT:

    systemctl enable postgresql

3. Secara Default postgresql akan menjalankan localhost (127.0.0.1) dengan posrt 5432 pada                  Ubuntu. Jalankan perintah ini untuk mengecek :

    netstat  -plntu



4. Pada gambar diatas postgresql sudah berjalan. Maka langkah selanjutya kita mengganti password        user postgres. Jalankan Perintah berikut:

    sudo su postgres

5. Setelah masuk ke postgres#  selanjutnya jalankan perintah ini:

    \password postgres

     lalu cek info dari user postgres tersebut dengan perintah berikut:
     
     \conninfo

6. Sekarang kita Konfigurasi postgres yaitu dengan user ROOT , kita change directory 

    cd  /etc/postgresql/9.5/main/

  vim  postgresql.conf


     Uncomment dan ubah script berikut :
   
     listen_addresses = '10.1.1.2'

  wal_level = hot_standby

  wal_level = hot_standby

   
  archive_mode = on

     archive_command = 'cp %p  /var/lib/postgresql/9.5/main/archive/%f'

  max_wal_senders = 2    (karena saya pakai 2 server)

   
  wal_keep_segments = 10 ( 1 segment dengan value 16 Mb)

  synchronous_standby_names = 'node'


      Setelah itu simpan file tersebut.

7.  Pada file postgresql.conf saya sudah buat enabled/on  maka kita harus membuat file directory             untuk Archive . Buat  directory Archive baru dan ubah  permission pemilik user postgres:

     mkdir -p  /var/lib/postgresql/9.5/main/archive/

    chmod 700  /var/lib/postgresql/9.5/main/archive/

    chown  -R  postgres:postgres  /var/lib/postgresql/9.5/main/archive/

8. Selanjutnya ubah file pg_hba.conf dengan perintah ini :

    vim pg_hba.conf

    Tambahkan Script konfigurasi berikut:

    # Localhost
  host replication     replica   127.0.0.1/32   md5

  # PostgreSQL Master IP address
  host  replication    replica   10.1.1.2/32     md5

  # PostgreSQL SLave IP address
  host  replication   replica   10.1.1.3/32      md5

   
     Simpan dan exit.

9. Kemudian restart postgresql dengan perintah berikut:

    systemctl  restart  postgresql

     Maka postgressql  sudah berjalan  pada IP 10.1.1.2 atau biasanya saya pakai tanda  (*)  di                   Listen Addreses maka postgresql nya berjalan di IP 0.0.0.0:5432

     Cek postgresql nya dengan cara

     netstat  -plntu

    

10. Selanjutnya buat user baru untuk Replikasinya dengan nama user replica dan password nya                password. Untuk password bebas silahkan dibuat sendiri. kita masuk ke user postgres:

      su su postgres

   psql

   CREATE  USER  replica  REPLICATION  LOGIN  ENCRYPTED  PASSWORD  'password';

        Lalu cek user baru replica sudah punya hak akses:

   \du





II.  Install dan Konfigurasi Server Slave

1. Install postrgesql 9.5
2. Setelah diinstal selanjutnya masuk ke user ROOT lalu stop  postgresql

     systemctl  stop  postgresql

3. Edit File postgresql.conf  dengan perintah berikut ini:
 
     cd  /etc/postgresql/9.5/main/

  vim  postgresql.conf

  Uncomment dan edit :

     listen_addresses = '10.1.1.3'

     wal_level = hot_standby

     synchronous_commit = local

     max_wal_senders = 2

     wal_keep_segments = 10

     synchronous_standby_names = 'node'

      hot_standby = on

  Simpan file tersebut dan exit.

4. Login sebagai user postrges. Lalu ikuti perintah berikut ini
  
    sudo su postgres

  cd 9.6/

     mv main main-backup

  mkdir main/

  chmod 700 main/

5. Selanjutnya copy data main dari Server Master  ke Server Slave dengan menggunakan user              replica

  pg_basebackup  -h 10.1.1.2  -U replica -D  /var/lib/postgresql/9.5/main  -P  --xlog

    Lalu Masukan Password:

6. Jika data sudah tercopy sempurna maka langkah selanjutnya adalah  ke directory main untuk              membuat  file recovery.conf

    cd  /var/lib/postgresql/9.5/main/ 

    vim recovery.conf

  Isi File tersebut dengan script dibawah ini:
     
     standby_mode = 'on'     primary_conninfo='host=10.1.1.2  port=5432 
     user=replica password=password  application_name=node'
     restore_command = 'cp  /var/lib/postgresql/9.5/main/archive/%f   %p'
     trigger_file = '/tmp/postgresql.trigger.5432'

  Simpan file tersebut dan exit.

7. Ubah permission file tersebut:

     chmod 600 recovery.conf



8.  Lalu Start  postgresql nya  dengan perintah:

     systemctl  start  postgresql

    netstat -plntu
 


   Data trasnfer  antara Server Master dan Server Slave sudah complete.

9. Cek status  Replikasi pada Server Master 

    sudo  su  postgres

    select application_name, state, sync_priority, sync_state from pg_stat_replication;

  select * from pg_stat_replication;
   
    
10.  Testing data apakah kedua server tersebut sudah sinkron?

        sudo su postgres
      
        psql

   CREATE TABLE replica_test (hakase varchar(100));


    INSERT INTO replica_test VALUES ('howtoforge.com');


    INSERT INTO replica_test VALUES ('This is from Master');


    INSERT INTO replica_test VALUES ('pg replication by hakase-labs');

  


   Cek data pada server Slave:

       sudo su postgres
     
        psql

   Cek data replica_test dengan query berikut:

        select * from replica_test;


   Maka akan terlihat data yang sama seperti gambar berikut:

       
   Untuk selanjutnya silahkan isi data pada Server Master  lalu kemudian cek di Server  Slave.
   



Oke teman- teman, sekian sharing dari saya, semoga tutorial ini sangat bermanfaat. Jangan lupa di like comment atau dibagikan , biar bermanfaat juga dengan teman-teman kita yang membutuhkan πŸ˜ƒThank you guys... see you next in the next tutorial byeeee...πŸ˜‡πŸ˜‡πŸ˜‡