Apache HTTP + Tomcat + HTTPS (SSL/TLS)

ApacheTomcatSSL

I often have to deploy my JAVA application to tomcat with HTTPS communication. There is simple step-by-step guide.

Prerequisites

  • Linux machine (Ubuntu 14.04 in my case)
  • Installed and working Apache 2 HTTP server (http://localhost:80/ works in your browser)
  • Installed Tomcat 7 server (http://localhost:8080/ works in your browser)
  • Installed Oracle JAVA (JDK)

What we will do in the guide ?

  • Generate self-signed certificate for server
  • Install self-signed certificate to Apache
  • Configure AJP connection between Apache and Tomcat at URL (https://localhost)

Celý článek

[lang_cs]Instalace JBoss AS 5.1 na Fedora Core 13[/lang_cs][lang_en]Installation of JBoss AS 5.1 on Fedora Core 13[/lang_en]

[lang_en]

Java JDK installation

Download installation file

– Download rpm.bin package (example jdk-6u20-linux-i586-rpm.bin) from this url: http://java.sun.com/javase/downloads/index.jsp.
Note: you can Skip login step.

Installation

– Run terminal and login as root

su -

– Change right directory (example /tmp) and Make JDK binary executable

cd /tmp
chmod +x jdk-6u21-linux-i586-rpm.bin

– Run installation

./jdk-6u21-linux-i586-rpm.bin

– Install new SUN java, javac, javaws and libjavaplugin.so (for Firefox/Mozilla) with alternatives command

alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_21/jre/bin/java 20000
alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.6.0_21/jre/bin/javaws 20000
alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/java/jdk1.6.0_21/jre/lib/i386/libnpjp2.so 20000
alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_21/bin/javac 20000

Set JAVA_HOME environment variable

Create script file java.sh

cat <<EOF>> /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.6.0_21/jre
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
source /etc/profile.d/java.sh

Check your java installation

– Check current java, javac, javaws and libjavaplugin.so versions
Command:

java -version

Output:

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)

Command:

javac -version

Output:

javac 1.6.0_21

Command:

javaws

Output:

Java(TM) Web Start 1.6.0_21 
...

– Check current java in firefox, put into the address bar:

about:plugins

– You should find on page these lines:

Java(TM) Plug-in 1.6.0_21

    File: libnpjp2.so
    Version: 
    The next generation Java plug-in for Mozilla browsers.

– You can check your firefox java plugin also at this url: http://www.java.com/en/download/installed.jsp.

Apache-ant installation

Download installation file

– Download TAR.GZ package from this url: http://ant.apache.org/bindownload.cgi.

Installation

– Run terminal and login as root

su -

– Go to „/usr/local“ direcotry

cd /usr/local

– Untar downloaded TAR.GZ package

tar xvzf /PathToDownloadsDirectory/apache-ant-1.8.1-bin.tar.gz

Setting the ANT_HOME variable

Create script file apache-ant.sh

cat <<EOF>> /etc/profile.d/apache-ant.sh
export ANT_HOME=/usr/local/apache-ant-1.8.1
export PATH=$PATH:$ANT_HOME/bin
EOF
source /etc/profile.d/apache-ant.sh

Link to ANT

Create ant symlink in /usr/bin

ln -s /usr/local/apache-ant-1.8.1/bin/ant /usr/bin/ant

JBoss AS 5.1 installation

Download installation file

– Download ZIP package from this url: http://jboss.org/jbossas/downloads/.
Note: Download JDK6 package (e.g: jboss-5.1.0.GA-jdk6.zip), because we have installed JDK6.

Installation

– Run terminal and login as root

su -

– Go to „/usr/local“ direcotry

cd /usr/local

– Unzip downloaded ZIP package

unzip /PathToDownloadsDirectory/jboss-5.1.0.GA-jdk6.zip

Setting the JBOSS_HOME variable

Create script file jboss.sh

cat <<EOF>> /etc/profile.d/jboss.sh
export JBOSS_HOME=/usr/local/jboss-5.1.0.GA
export PATH=$PATH:$JBOSS_HOME/bin
EOF
source /etc/profile.d/jboss.sh

File permissions settings

– JBoss can run only user „root“ now. But we would like grant run JBoss permissions to all users from group „jboss“ (this group must exists before we start)
– Run terminal and login as root

su -

– Set owner of JBoss installation foilder (e.g.: user jboss_user)

chown jboss_user /usr/local/jboss-5.1.0.GA/ -R

– All members of group „jboss“ cen run JBoss server now

Installation Test

Run JBoss

– Open terminal and run JBoss

/usr/local/jboss-5.1.0.GA/bin/run.sh

– Please be patient, JBoss start on my computer takes mere then 1,5 minutes.
Output:


=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /usr/local/jboss-5.1.0.GA

  JAVA: /usr/java/jdk1.6.0_21/jre/bin/java

  JAVA_OPTS: -Dprogram.name=run.sh -server -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true

  CLASSPATH: /usr/local/jboss-5.1.0.GA/bin/run.jar

=========================================================================

07:56:12,461 INFO  [ServerImpl] Starting JBoss (Microcontainer)...
07:56:12,463 INFO  [ServerImpl] Release ID: JBoss [The Oracle] 5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)
...

07:59:03,045 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 1m:37s:243ms

– There shouldn’t be any ERROR message (only INFO) and the last line should be like in my output.

Open JBoss in your browser

– Run your internet browser and put into the address bar:

http://localhost:8080

– JBoss main page should display

[/lang_en]
[lang_cs]

Instalace Java JDK

Stáhněte instalační soubor

– Balíček RPM.BIN (npř: jdk-6u20-linux-i586-rpm.bin) můžete stáhnout z této url: http://java.sun.com/javase/downloads/index.jsp.
Poznámka: Přihlašovací obrazovku můžete přeskočit.

Instalace

– Spusťte terminál a přihlašte se jako root

su -

– Změňte aktuální adresář (např: /tmp) a udělejte JDK binary spustitelný

cd /tmp
chmod +x jdk-6u21-linux-i586-rpm.bin

– Spusťte instalaci

./jdk-6u21-linux-i586-rpm.bin

– Nainstalujte novou SUN java, javac, javaws and libjavaplugin.so (pro Firefox/Mozilla) pomocí příkazu alternatives

alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_21/jre/bin/java 20000
alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.6.0_21/jre/bin/javaws 20000
alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/java/jdk1.6.0_21/jre/lib/i386/libnpjp2.so 20000
alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_21/bin/javac 20000

Nastavení JAVA_HOME proměnné

Vytvořte skript java.sh

cat <<EOF>> /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.6.0_21/jre
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
source /etc/profile.d/java.sh

Zkontrolujte vaší instalaci javy

– Ověřte si verzi java, javac, javaws a libjavaplugin.so
Příkaz:

java -version

Výstup:

java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)

Příkaz:

javac -version

Výstup:

javac 1.6.0_21

Příkaz:

javaws

Výstup:

Java(TM) Web Start 1.6.0_21 
...

– Javu ve firefox můžete zkontrolovar tím že zadáte do address baru následující url:

about:plugins

– Na stránce by jste měli najít následující text:

Java(TM) Plug-in 1.6.0_21

    File: libnpjp2.so
    Version: 
    The next generation Java plug-in for Mozilla browsers.
...

– Java plugin můžete zkontrolovat také na této stránce: http://www.java.com/en/download/installed.jsp.

Instalace Apache-ant

Stažení instalačního souboru

– Stáhněte si balíček TAR.GZ z této url: http://ant.apache.org/bindownload.cgi.

Instalace

– Spusťte terminál a přihlašte se jako root

su -

– Běžte do složky „/usr/local“

cd /usr/local

– Rozbalte stažený balíček TAR.GZ

tar xvzf /PathToDownloadsDirectory/apache-ant-1.8.1-bin.tar.gz

Nastavení ANT_HOME proměnné

Vytvořte skript apache-ant.sh

cat <<EOF>> /etc/profile.d/apache-ant.sh
export ANT_HOME=/usr/local/apache-ant-1.8.1
export PATH=$PATH:$ANT_HOME/bin
EOF
source /etc/profile.d/apache-ant.sh

Link na ANT

Vytvořte link na ant do /usr/bin

ln -s /usr/local/apache-ant-1.8.1/bin/ant /usr/bin/ant

Instalace JBoss AS 5.1

Stažení instalačního souboru

– Stáhněte si ZIP balíček z této url: http://jboss.org/jbossas/downloads/.
Poznámka: Stáhněte si verzi připravenou pro JDK6 (e.g: jboss-5.1.0.GA-jdk6.zip), protože máme Java JDK6 nainstalovanou.

Instalace

– Spusťte terminál a přihlašte se jako root

su -

– Bžte do složky „/usr/local“

cd /usr/local

– Rozbalte ZIP balíček

unzip /PathToDownloadsDirectory/jboss-5.1.0.GA-jdk6.zip

Nastavení JBOSS_HOME proměnné

Vytvořte skript jboss.sh

cat <<EOF>> /etc/profile.d/jboss.sh
export JBOSS_HOME=/usr/local/jboss-5.1.0.GA
export PATH=$PATH:$JBOSS_HOME/bin
EOF
source /etc/profile.d/jboss.sh

Nastavení přístupových práv

– Aby mohl JBoss spouštět i jiný uživatel než root, musíte nastavit správná oprávnění ma jednotlivých konfiguračních adresářích JBoss. Ty se nachází ve složce „/usr/local/jboss-5.1.0.GA/server/“.
– My chceme aby všechny konfigurace JBoss mohli spouštět uživatelé ze skupiny „jboss“ (tuto skupinu musíme mít již vytvořenou)
– Spusťte terminál a přihlašte se jako root

su -

– Nastavte vlastníka složky s instalací JBoss (např: uživatel jboss_user)

chown jboss_user /usr/local/jboss-5.1.0.GA/ -R

– Nyní mohou spouštět server JBoss všichni členové skupiny „jboss“

Test instalace

Spuštění JBoss

– Otevřete terminál a spusťte JBoss

/usr/local/jboss-5.1.0.GA/bin/run.sh

– Buďte trpělivý, JBoss na mém počítači startuje více jak 1,5 minuty.
Výstup:


=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /usr/local/jboss-5.1.0.GA

  JAVA: /usr/java/jdk1.6.0_21/jre/bin/java

  JAVA_OPTS: -Dprogram.name=run.sh -server -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true

  CLASSPATH: /usr/local/jboss-5.1.0.GA/bin/run.jar

=========================================================================

07:56:12,461 INFO  [ServerImpl] Starting JBoss (Microcontainer)...
07:56:12,463 INFO  [ServerImpl] Release ID: JBoss [The Oracle] 5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)
...

07:59:03,045 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 1m:37s:243ms

– Ve výpisu by neměl být jediný ERROR ale jen INFO zprávy, poslední řádek by měl být podobný jako vidíte v mém výpisu.

Otevření stránky JBoss v prohlížeči

– Spusťte internetový prohlížeč a zadejte do něj adresu:

http://localhost:8080

– Měla by se objevit úvodní stránka JBoss

[/lang_cs]

OpenSUSE 11.1 – Subversion server + Apache2

[lang_en]If you would like know how to install subversion and create new subversion repository in OpenSUSE 11.1 this post is for you.

Content:

  1. Installation of subversion server
  2. Creation of new subversion repository and finishing configuration


Installation of subversion server

Top
  1. We have to install subversion and apache2 packages as the first step.
    Run console and run command:
    sudo /sbin/yast -i subversion-server subversion apache2 apache2-doc apache2-prefork libapr1 libapr-util1 neon
  2. We enable webdav and webdav-svn modules in apache configuration. It allow browse SVN repository by browser. Please run these commands:
    sudo a2enmod dav
    sudo a2enmod dav_svn
  3. We have to create group and user svn for manipulation with subversion repository. Run these commands:
    sudo groupadd -r svn
    sudo useradd -r -g svn -d /srv/svn -s /bin/false svn
  4. Now is time for creation of folder where files send to subversion-server will be stored. You can modify path as you want my chose is „/home/SVN“
    sudo mkdir -p /home/SVN
  5. We have to edit file „/etc/apache2/conf.d/subversion.conf“. I use will use nano for edit of this file. (if you don’t have nano installed you can do it by command sudo /sbin/yast -i nano)
    sudo nano /etc/apache2/conf.d/subversion.conf
  6. Modify the configuration file. I deleted complete content and put in configuration below. You have to modify only attributes „“ and „SVNParentPath /home/SVN“. There is my configuration file:
    # Repository with URL http://your_url/svn
    # Free read access restricted commit access

    DAV svn
    SVNParentPath /home/SVN
    SVNListParentPath On
    # Limit write permission to list of valid users.

    # Require SSL connection for password protection.
    # SSLRequireSSL
    AuthType Basic
    # Message to give to the committer
    AuthName „Write access requires a password“
    # File listing users with write (commit) access
    AuthUserFile /srv/svn/user_access/svn_passwdfile
    Require valid-user

  7. We create now file for store passwords. Run these commands:
    sudo mkdir /srv/svn
    sudo mkdir /srv/svn/user_access
    sudo touch /srv/svn/user_access/svn_passwdfile
    sudo chown root:www /srv/svn/user_access/svn_passwdfile
    sudo chmod 640 /srv/svn/user_access/svn_passwdfile
  8. We can add user to svn acces by command (modify word „user_name“ by real user name)
    sudo htpasswd2 /srv/svn/user_access/svn_passwdfile user_name
  9. Restart apache server.
    sudo rcapache2 restart


Creation of new subversion repository and finishing configuration

Top
  1. Create repository by command (please modify path „/home/SVN/myNewProject“ to your path to subversion folder)
    sudo svnadmin create /home/SVN/myNewProject
  2. Modify permissions for folder what you created in previous step.

    sudo chown -R wwwrun:www /home/SVN/myNewProject{db,locks}
    sudo chown wwwrun:www /home/SVN/myNewProject

[/lang_en]

[lang_cs]
Pokud chete nainstalovat subversion server a vytvorit si vlastni repozitář v OpenSUSE 11.1, tak je tato stránka určená právě Vám.

Obsah:

  1. Instalace subversion serveru
  2. Vytvoření nového repozitáře a dokončení instalace


Instalace subversion serveru

Top
  1. Nejdříve musíme nainstalovat subversion a apache2 balíčky.
    Spusťte trerminál a v něm příkaz:
    sudo /sbin/yast -i subversion-server subversion apache2 apache2-doc apache2-prefork libapr1 libapr-util1 neon
  2. Zapneme webdav a webdav-svn moduly v konfiguraci apache. To nám umožní procházet repozitáře SVN pomocí prohlížeče. Spusťte následující příkazy:
    sudo a2enmod dav
    sudo a2enmod dav_svn
  3. Nyní musíme vytvořit skupinu a uživatele svn, který bude mít právo pracovat se složkou SVN. Spusťte tyto příkazy:
    sudo groupadd -r svn
    sudo useradd -r -g svn -d /srv/svn -s /bin/false svn
  4. Je čas vytvořit složku kde budou uloženy vaše soubory které pošlete do SVN serveru. Cestu si můžete vybrat libovolně, já jsem zvolil „/home/SVN“
    sudo mkdir -p /home/SVN
  5. Modifikujeme konfigurační soubor „/etc/apache2/conf.d/subversion.conf“. Osobně používám editor nano, samozřejmě můžete použít libovolný editor. (pokud chcete použít nano a nemáte jej nainstalovaný spusťte příkaz sudo /sbin/yast -i nano)
    sudo nano /etc/apache2/conf.d/subversion.conf
  6. Modifikujte soubor tak aby měl nastavené parametry jako ukázka dole. Já jsem postupoval tak, že jsem celý obsah smazal a vložit nový. Nezapomeňte změnit položky „“ a „SVNParentPath /home/SVN“.
    # Repository with URL http://your_url/svn
    # Free read access restricted commit access

    DAV svn
    SVNParentPath /home/SVN
    SVNListParentPath On
    # Limit write permission to list of valid users.

    # Require SSL connection for password protection.
    # SSLRequireSSL
    AuthType Basic
    # Message to give to the committer
    AuthName „Write access requires a password“
    # File listing users with write (commit) access
    AuthUserFile /srv/svn/user_access/svn_passwdfile
    Require valid-user

  7. Nyní vytvořím soubor, kde budou uložena hesla pro přístup do SVN. Spusťte příkazy:
    sudo mkdir /srv/svn
    sudo mkdir /srv/svn/user_access
    sudo touch /srv/svn/user_access/svn_passwdfile
    sudo chown root:www /srv/svn/user_access/svn_passwdfile
    sudo chmod 640 /srv/svn/user_access/svn_passwdfile
  8. Nového uživatele přidáte tímto příkazem. Budete vyzvání k zadání jeho hesla. (změňte slovo „user_name“ za reálné jméno uživatele)
    sudo htpasswd2 /srv/svn/user_access/svn_passwdfile user_name
  9. Restartujte apache server.
    sudo rcapache2 restart


Vytvoření nového repozitáře a dokončení instalace

Top
  1. Vytvořte repozitář příkazem (modifikujte cestu „/home/SVN/myNewProject“ na cestu k vaší subversion složce, kterou jste si vytvořili v předchozím postupu)
    sudo svnadmin create /home/SVN/myNewProject
  2. Modifikujte oprávnění složky, kterou jsme právě vytvořili.

    sudo chown -R wwwrun:www /home/SVN/myNewProject{db,locks}
    sudo chown wwwrun:www /home/SVN/myNewProject

[/lang_cs]