Zobrazují se příspěvky se štítkemApache. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemApache. Zobrazit všechny příspěvky

pondělí 21. listopadu 2011

OpenSSL library error follows - values mismatch

Řešil jsem standartní výměnu SSL certifikátu u webserveru Apache. Po domluvě s osobou, co certifikační řízení řešil u CA Thawte jsem mu vytvořil nové CSR dle zvyklostí.

openssl genrsa -des3 -out www.domena.cz.key 2048
openssl req -new -key www.domena.cz.key -out www.domena.cz.csr
openssl rsa -in www.domena.cz.key -out www.domena.cz.key-decrypt


Posléze jsem certifikáty přenesl na webserver a restartoval jej a ejhle, Apache nenaběhl s hláškou:

[Mon Nov 21 12:36:16 2011] [error] mod_ssl: Init: (www.domena.cz:443) Unable to configure RSA server private key (OpenSSL library error follows)
[Mon Nov 21 12:36:16 2011] [error] OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch


Je vhodné vždy prověřit, zda je modulus stejny u klíče (key), certifikátu (crt) a požadavku (csr)!!!

openssl x509 -noout -text -in www.domena.cz.crt -modulus
openssl rsa -noout -text -in www.domena.cz.key -modulus
openssl req -noout -text -in www.domena.cz.csr -modulus

Muj problem byl v tom, že mi pán zaslal jiný cert, než bylo domluveno :-(

středa 9. listopadu 2011

SSI apache 1.3 vs apache 2.2

Překlapěl jsem konfigurace Apache 1.3.x na Apache 2.2.x a narazil jsem na problem s SSI, přesněji na práci s DATE_LOCAL. SSI jako takové fungovalo, ale duplicitní directiva zapomenutá v common.conf a nová direktiva v mods-enable/mime.conf delala problémy.

Konfigurace Apache 1.3.x

AddType text/html .shtml
AddHandler server-parsed .shtml

Konfigurace Apache 2.2.x

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml


Je zvláštní že apachectl configtest nehlídá i duplicitní záznamy v konfiguraci.

čtvrtek 27. října 2011

AllowOverride nepatří do Location

Při překlápění webu z apache 1.3.x na apache 2.2.x jsem narazil na pár zajímavostí. Jistou konfigurační chybou bylo použití direktivy AllowOverride v Location. Starší verze tuto chybu připouští.

Options Includes Indexes
AllowOverride None
AuthType Basic
AuthName "Mas heslo ?"
AuthUserFile /data/www/etc/htpasswd
Require valid-user
Allow from 127.0.0.1/0.0.0.0

Novější Apache již varuje před nadbýtečným užitím direktivy AllowOverride.

root@server:$ ./apachectl configtest
[Thu Oct 27 13:22:40 2011] [warn] Useless use of AllowOverride in line 3.
Syntax OK

Takže ještě jednou AllowOverride nepatří do Location :-)

pondělí 24. října 2011

BEAST attack on TLS

Již dříve jsem si sem poznamenával něco o SSL Tunningu na serverech, jako reakce na clánek na root.cz. Nově jsem na SSL Labs narazil na BEAST attack.

Zde je doporučené nastaveni OpenSSL - mod_ssl. Ukázkové video o útoku.

SSLProtocol -all +SSLv3 +TLSv1
SSLCipherSuite RC4-SHA:ALL:!NULL:!aNULL:!eNULL:!ADH:!LOW:!EXP:!MD5
SSLHonorCipherOrder On

úterý 2. srpna 2011

IE vs Apache SSL virtual a binarni data

Jelikož již po několikáte dohledávám jistý problém s jedním skutečně nepovedeným prohlížečem. Musim si to sem již zapsat.

Problem spočívá v tom, že pokud máme někde na Apache virtual s SSL a chceme aby web poskytoval např. nějaké swf soubory, IE je stáhne, ale nabízí k uložení. Dle mě je to dlouholetá a neopravená chyba, někdo tvrdí, že vlastnost. Podotýkám, že ve všech prohlížečích se to chová správně.

Je třeba u daného apache virtuálu nastavit např. následující.


SetEnvIf User-Agent ".*MSIE.*" IE_browser=yes
Header set Pragma public env=IE_browser
Header set Cache-control max-age=0 env=IE_browser *


Jelikož hojně používám mod_macro je záhodno danou definici uložit např. do macro.conf a posléze jen na správném míste použít Use M_IESSL

Teď už si to snad budu pamatovat a preventivně nastavovat všude tam, kde je SSL.

úterý 1. března 2011

netdisco - mod_perl

Hledal jsem nějaký SW na správu síťových přepínačů. Našel jsem netdisco. Jedná se o aplikaci psanou v Perlu, kde web gui je provozováno díky mod_perl a hlavně HTML::Mason (tento FrameWork znám z Request Trackeru), data se ukládají do databáze PostreSQL.

Testovací instalaci jsem snadno zprovoznil na OS FreeBSD-8.2 RELEASE. Díky portu je instalace velmi snadná. Používá se zhruba 52 p5-* perlových modulů. Pokud si nejprve nainstalujeme Apache22 a PostreSQL9.x, port to zohlední i přesto, že jeho závislost je na Apache1.3.x a PostreSQL 8.x.

Instalace přídá potřebné direktivy do httpd.conf jako include. Netdisco se pomocí protokolu SNMP přihlašuje na Switche nebo Routery a na nich pomocí private komunit umožňuje přenastavovat porty, VLAN a jiné. Seznam vlastností aplikace je zde.

Postinstalační postup:

Netdisco has been installed.

In order to get up and running, there are a few more steps to complete:

1) fetch http://standards.ieee.org/regauth/oui/oui.txt
and copy the file oui.txt to /usr/local/share/netdisco

2) Run the following to create and initialise the netdisco database:

perl /usr/local/share/netdisco/sql/pg --init

3) Examine all the configuration files in /usr/local/etc/netdisco,
and modify them to suit your needs.

4) Add an initial admin user by running 'netdisco -u'

5) Import the OUI database: netdisco -o

6) Edit /usr/local/etc/netdisco/netdisco.crontab and change
center_network_device to one of your core routers/switches. Then
install the crontab:

crontab -u netdisco /usr/local/etc/netdisco/netdisco.crontab

7) Add netdisco_enable="YES" to /etc/rc.conf, and then run
/usr/local/etc/rc.d/netdisco to start the admin daemon.

8) Apache must be stopped/started (a graceful restart won't work)

Z časových důvodů seznamování s danou aplikací odkládam na neurčito :-(

čtvrtek 24. února 2011

RewriteCond mod_rewrite

Modul do web serveru apache mod_rewrite je velmi mocný nástroj, kterým se dá řešit spousta přesmerování, ale i podmínek. Tento modul je běžnou součástí webserveru, tím mám na mysli, že se nemusí do webserveru doinstalovávat nebo takněco. Stačí jen nakonfigurovat a začít používat.

Řešil jsem přesměrování , pokud v URI je nějaký váskyt řetězce. Pravidla používám v kombinaci s mod_macro.

Pokud je v URI xyz
http://www.domena.cz/neco/jako/xyz/data.html
přesměruj na http://www.domina.cz


RewriteCond %{REQUEST_URI} ^.*xyz.*
RewriteRule ^/(.*)$ http://www.domina.cz [L]


Dané makro M_test je přiřazeno k apache virtuálu www.domena.cz.

Pár odkazů:

čtvrtek 21. října 2010

PFX - PKCS and Apache

Dostal se mi pod ruce certifikat v souboru s priponou .pfx. Pátral jsem a vyplivla ho zjevně nějaká M$ CA a tak jsem hledal jak to překonvertit pro Apache.

How do I export or import a PKCS#12 certificate?

openssl pkcs12 -in cert.pfx -out cert.pem -nodes

Soubor cert.pfx je zaheslován, takže potřebujeme i heslo pro úspěčnou konverzi. Konverzí získáme soubor cert.pem, který obsahuje balast řádky typu.

Bag Attributes
1.3.6.1.4.1.311.17.2:
localKeyID: 01 00 00 00
Microsoft CSP Name: Microsoft Software Key Storage Provider
friendlyName: le-LMCZWebServer-aee00472-b103-45d9-a25c-b0da2fb35820
Key Attributes:


a

Bag Attributes
localKeyID: 01 00 00 00
friendlyName: LukasMaly.NET
subject=/CN=test.smejdil.cz
issuer=/DC=cz/DC=smejdil/CN=Test


Nás budou zajímat jen sekce

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

Které si vykopírujeme např. do souborů test.smejdil.cz.crt a test.smejdil.cz.key. Dané soubory můžeme přidat do konfigurace Webserveru Apache např. s modulem mod_ssl.

PKCS#12 je standard z rodiny PKCS a PFX Tento formát se již nepoužívá, je to starší implementace, kterou Microsoftu stale používá. Dle české wiki je PFX předchůdcem standardu PKCS#12.

Zde je ještě zajímavé povídání s nadpisem "PFX - How Not to Design a Crypto Protocol/Standard"

pondělí 13. září 2010

URL redirect

Způsobů, jak provést redirect URL je hnedle několik. V mnou poznamenaném odkaze je popsáno několik způsobu. Mnou nejpoužívanějsi mod_rewrite, Meta Refresh URL Redirect, PHP URL Redirect, ASP URL Redirect, Coldfusion URL Redirect, JavaScript URL Redirect a v neposlední řadě SSI Include URL Redirect.

http://www.seocompany.ca/seo/url-redirect.html

středa 4. srpna 2010

Apache gzip deflate

Při sprovoznění jednoho nového webu mě kolega nasměroval na užití mod_gzip pro apache 1.3.x nebo mod_deflate pro Apache 2.x. Daný modul zajistí komprimaci stránek, pokud si to browser vyžádá a danou funkcionalitu umí. Zpovozňoval jsem mod_deflate na Apache22. Nutno podotknout, že jistým vodítkem je rozžířeni YSlow v pluginu Firebug v browseru Firefox. YSlow radí jak daný web server potunit, aby fungoval lépe a rychleji.

Existuje řada online testovacích nástroju, které ukazují zda web server podporuje gzip nebo ne.

středa 21. července 2010

SSL Tunning





Po přečtení článku na rootu jsem musel přenastavit často používané defaultní nastaveni SSL u několika webserveru s Apache. Defaultní nastavení je ve prospěch mnoha starších browseru. Ale bezpečnosti nenní nikdy dost a zombie sw má prostě smůlu. Ve článku je zmíněn velmi povedený online nástroj na proveření konfigurace SSL (HTTPS).

https://www.ssllabs.com/ssldb/index.html

Drobným doporučením pro konfiguraci Apache je. Konfiguraci SSL hodně ovlivňují tyto dvě direktivy SSLCipherSuite a SSLProtocol

SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:-MEDIUM
SSLProtocol -all +SSLv3 +TLSv1

Díky RSA007 za nakopnutí v daném tématu.

úterý 22. června 2010

EV Certifikát od Thawte

Již v minulosti jsem zprovozňoval Extended Validation Certificate na web serveru Apache. Ale to bylo u jiné certifikační autority. Popsané to mám zde.

Postupy pro jednotlivé instalace pro jednotlivé programy jsou zde na stránce Install SSL certificate.

Návod na instalaci na serveru Apache je zde Install Extended Validation Certificate on Apache

Zajimavostí je, že u Thawte musíme vyplnit stahovací formulář a potvrdit pravidla užití kořenových certifikátů, které stáhneme zde. Což se tuším u VeriSign nemuselo.

Nastavení Apache je již obdobné jako u puvodního příspěvku. Důležité jsou opět direktivy SSLCACertificateFile a SSLPassPhraseDialog.

Kontrolu certifikatu na serveru můžeme proveřit pomoci Browseru, nebo z příkazové řádky, pomocí prikazu. Velmi pekný a ucelený návod na OpenSSL je zde.

openssl s_client -connect www.google.com:443

úterý 25. května 2010

SSI - mod_include.c

Dnes jsem řešil zajimavou funkcionalitu SSI u Apache22. Kolegyně webdeveloperka mi hlasila, že jí .shtml funguje, jen v některých částech webové stránky - aplikace. Při použití ' a ", proměnné nabývaly nesprávných hodnot.

přesněji řečeno, první kod nefungoval a druhý ano.
první:
<a href="...<!--#echo var="QUERY_STRING" -->" ...>..</a>
druhý:
<a href='...<!--#echo var="QUERY_STRING" -->' ...>..</a>
Funkcionalita SSI byla na serveru zapnutá pomocí klasické direktivy

vim ./mods-enabled/mime.conf
...
#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml


Co se apache modulů týče, modul mod_include, jsem nahraný neměl. Takže částečná funkcionalita SSI je i bez daného modulu. Po nahrání modulu mod_include začalo fungovat použití a href=".

pátek 2. dubna 2010

APR + Tomcat-6.x + libtcnative

Na jednom serveru jsem nedávno instalovat Tomcat6, přesně apache-tomcat-6.0.26.tar.gz. Po spuštění serveru jsem v logu vídal INFO hlášku o tom, že nemůže načíst APR knihovnu. Nevěnoval jsem tomu pozornost do doby než mi napsal kolega mail a tak jsem to začal nějak řešit.

INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/java/jdk1.6.0_18/jre/lib/i386/client:/opt/java/jdk1.6.0_18/jre/lib/i386:/opt/java/jdk1.6.0_18/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib

Tyto cesty jsou evidentě defaultně načtené, některé ani neexistují.

První cesta vedla na stránky projektu kde se o APR něco píše, zaměřil jsem se na instalaci pod Linuxem.

Pro funkční kompilaci je třeba do systému Linux Ubuntu Server 8.04.4 nainstalovat pár balíčků.

apt-get install libapr1
apt-get install libapr1-dev
apt-get install libaprutil1
apt-get install libaprutil1-dev

APR je zkratka "The Apache Portable Runtime Library" podrobně popsáno na WiKi.

Manuální kompilaci a instalaci lze provádět např. takto.

./tomcatctl stop
cd /opt/apache-tomcat-6.0.26/bin
tar xvzf tomcat-native.tar.gz
cd tomcat-native-1.1.20-src/jni/native
./configure --with-apr=/usr/bin/apt-config
nebo
./configure --with-apr=/usr/bin/apr-1-config --with-java-home=$JAVA_HOME --with-ssl=yes
make
make install

v adresáři /usr/local/apr/lib/ se po instalaci objeví potřebná knihovna libtcnative-1.so

Pro funkční načtení knihovny jsem ještě nastavil patřičnou JAVA proměnnou.

JAVA_OPTS="-Djava.library.path=/usr/local/apr/lib"

Pro funkční běh jsem ještě musel lehce poladit server.xml aby tomcat vubec naběhl. Některé direktivy už nejsou asi platné.

Stávající nastaveni konektoru mám pro Tomcat5.

port="8019" protocol="AJP/1.3"
enableLookups="false"
useBodyEncodingForURI="true"
acceptCount="256"
maxThreads="500"
emptySessionPath="true"


Takovou malou zajimavostí, alespoň pro mě je, že s použitím APR se zjevně používá jiný Conector, přičemž definice v konfiguračním souboru je stejná. U Tomcatu bez APR se používá JK konektor a při použití APR se startuje Coyote JK. Některé části Tomcatu ještě zjevně nemám probádané a toto chování mě lehce rozhodilo. Každopádně jsem zvědav zda s APR získám větší výkon.

Důkladně jsem si přečetl BUILDING, kde se píše o přenastaveni konektoru

protocol="org.apache.coyote.http11.Http11AprProtocol"
protocol="org.apache.coyote.ajp.AjpAprProtocol" = protocol="AJP/1.3"

Od verze Ubuntu Intrepid je k dispozici balík libtcnative-1, ten je, použitelný v případě, že používáme tomcat jako balík v systému, což není můj případ. Takže manuální kompilaci se nevyhneme. Ikdyž použít starší verzi Apache Tomcat Native library je možné. Alespoň verze 1.1.19 mi s Tomcat 6.0.26 fungovala s tím že v dané verzi tomcatu je Apache Tomcat Native library 1.1.20. Takže by mělo být asi možné provozovat balíčkovou verzi Apache Tomcat Native library s manuální instancí Tomcatu6.

Loaded APR based Apache Tomcat Native library 1.1.20

Ve FreeBSD je port /www/tomcat-native. Použití na tomto systému jsem zatím netestoval.

pondělí 8. března 2010

mod_jk 1.2.30 na Ubuntu 8.04.4 ze src

V Ubuntu Hardy Heron nebo číselně 8.04.4 LTS je velmi stará verze Apache2 modulu mod_jk 1.2.25 z 7.8..2007 :-( Např. ve FreeBSD je daný modul v aktuální vezi.

Pokud řešíte problém jako je nastavení workers.properties, ve kterém vyžaduji nastavení viz sekce v dokumentaci / Load Balancing Directives - sticky_session a Advanced Worker Directives - session_cookie / je problém na světě. Daná funkcinalita Tomcat Load Balancingu a chování session je funkční od až od veze 1.2.27. No a zde nám Debian a Ubuntu nějak usnulo. Neaktuálnost balíku v LTS verzi mě trošku zaráží. Hledal jsem nějaký externí repozitář, ale nenašel jsem. Rozhodl jsem se modul aktualizovat kompilací ze src.

Stručný popis, jak na to:

sudo su -
mkdir install
wget http:// kdesi cosi /tomcat-connectors-1.2.30-src.tar.gz
tar xvzf tomcat-connectors-1.2.30-src.tar.gz
cd tomcat-connectors-1.2.30-src/
less BUILD.txt

Dle popisu, jak kompilovat je patrné, že potřebuji APache eXtenSion tool pro Apache2. Hledám, v jakém balíčku se nachází.

apt-cache search apxs2
apache2-prefork-dev - development headers for apache2
apache2-threaded-dev - development headers for apache2

Jelikož používám apache2-mpm-worker volím druhý balík.

apt-get install apache2-threaded-dev

Kompiluji ...

cd native/
./configure --with-apxs=/usr/bin/apxs2
make
make install

Installing files to Apache Modules Directory...
/usr/bin/apxs2 -i mod_jk.la
/usr/share/apache2/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1.0/build/libtool' mod_jk.la /usr/lib/apache2/modules
/usr/share/apr-1.0/build/libtool --mode=install cp mod_jk.la /usr/lib/apache2/modules/
cp .libs/mod_jk.so /usr/lib/apache2/modules/mod_jk.so
cp .libs/mod_jk.lai /usr/lib/apache2/modules/mod_jk.la
cp .libs/mod_jk.a /usr/lib/apache2/modules/mod_jk.a
ranlib /usr/lib/apache2/modules/mod_jk.a
chmod 644 /usr/lib/apache2/modules/mod_jk.a
PATH="$PATH:/sbin" ldconfig -n /usr/lib/apache2/modules
----------------------------------------------------------
Libraries have been installed in:
/usr/lib/apache2/modules

Je třeba si uvědomit, že příkazem make install se nám přepíše modul z instalované verze v systému libapache2-mod-jk 1:1.2.25-2. Dále je třeba brát v patrnosti, fakt, že jsme vzali čisté zdrojáky, ale na systémový balíček je aplikován patch udržovatelů daného balíčku. Takže je velkou neznámou, zda je možno tuto verzi modulu takto zkompilovanou nasadit na produkční server.

Dále jsem si všiml, že direktivu JkMount jem musel z jk.conf přesunout do souboru kde definuji virtualni web server, ale to si musí každý vyzkoušet sam. Jistá změna tam prostě je.

úterý 5. ledna 2010

Jak na SSL certifikát Secure Site Pro with EV od VeriSign

Řešil sem vytvoření SSL certifikátu a ověření u certifikační autority dále jen CA VerySign. Jednalo se o tento produkt Secure Site Pro with EV. V minulosti jsem měl zkušenosti s CA Thawte a tak jsem nestudoval všechny podrobnosti a to se mi vymstilo.

CSR jsem jsem si vytvořil následovně.

openssl req -newkey rsa:2048 -sha1 -nodes -keyout private.key -out public.csr

Protože EV certifikát vyžaduje velikost privátního klíče 2048. Takto vytvořený CSR sice bezproblémově prošel certifikací, ale web server Apache odmítal nastartovat natož nahodit 443 virtual. V logu ssl_engine_log se objevovalo toto.

[error] Init: (www.domena.cz:443) Unable to configure RSA server private key (OpenSSL library error follows)
[error] OpenSSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch


Po dlouhém hledání a nastudování patřičných návodů k dané chybě, jsem ověřil že modus nesedí (není stejný), což je vyžadováno. Nápomocné jsou tyto příkazy OpenSSL, které načtou informace o klíčí a certifikátu. Další nápověda je zde.

openssl x509 -noout -text -in www.domena.cz.crt-modulus | less
openssl rsa -noout -text -in www.domena.cz.key-modulus | less

Byl jsem tudíž donucen stávající a ověřený klíč Revokovat a vytvořit nové CSR a privátní klíč pomocí doporučených OpenSSL příkazů. Certificate Signing Request (CSR) Generation Instructions - Apache SSL

openssl genrsa -des3 -out www.domena.cz.key 2048
openssl req -new -key www.domena.cz.key -out www.domena.cz.csr

U VeriSign jsem narazil na problém při přepsání klíče.

Revoke and Replace
4) Summary
We are unable to continue with this enrollment for the following reason: eECAS_INSTANT_DN_NOT_MATCH

Dále jsem provedl jen Revoke a manuální přepsání, ale to nikam nevedlo.

2) Summary
We are unable to continue with this enrollment for the following reason:
eECAS_INSTANT_DN_NOT_MATCH


Po kontaktování podpory jsem byl nasměrován na popis chyby. Error: errors.ecas.1 during EV Certificate replacement no a po novém certifikačním požadavku, kde se u platby uvede Order Number na které je vázána již uskutečněná platba.

Pro korektní zprovoznění certifikátu je třeba nakonfigurovat Apache takto. Volba SSLPassPhraseDialog se užije jen v případě, že máme klíč s pass phrase k čemuž nás VeriSign nabádá.

SSLPassPhraseDialog exec:/usr/local/etc/apache22/certi/ssl_pwd.pl
SSLCertificateFile certificates/www.domena.cz.crt
SSLCertificateKeyFile certificates/www.domena.cz.key
SSLCACertificateFile certificates/intermediate.crt
nebo
SSLCertificateChainFile certificates/intermediate.crt

pondělí 19. října 2009

Kdy certifikát expiruje ?

Na tuto otázku je snadná odpověď. V browseru klikneme na zámek u https spojení. Bejvá v browserech v pravo dole. Z okna vlastnosti máme možnost vyčíst informace o certifikátu. Pokud chceme daný udaj zjistit pomocí pžíkazu openssl na příkazové řádce, jednoduchý postup je zde.

Manually check the expiration date of an SSL certificate:

1. Retrieve the certificate.
$ echo "" | openssl s_client -connect server:443 > certificate

2. Check the expiration date of the certificate.
$ openssl x509 -in certificate -noout -enddate
notAfter=Nov 11 23:59:59 2010 GMT

Tak zase za rok :-) Orig návod je zde.

neděle 11. října 2009

Request Tracker alias RT

Request Tracker je webový nástroj pro příjmání požadavů k jejich řešení a evidenci. Jednotlivé emaily se příjmou poštovním programem a posléze se uloží do databáze. Webové rozhraní nám umožní přidělit požadavek některému z řešitelu atd. Typické je např. užití u adres info@domena.cz nebo bugs@domena.cz. Spousta větších firem daný systém používá pro komunikaci s klienty, nebo pro interní přidělení práce atd. Využití systému je všestranné.

Od doby kdy jsem jej aktivně používal uteklo hodně doby. V rámci testování výkonného serveru jsem si jej po dlouhé débě opět nainstaloval. Je vidno, že se systém neustále vyvýjí a zdokonaluje. Je psán v Perlu a často je konfigurován s web serverem Apache a modulem mod_perl. Můj test proběhl na OS FreeBSD, ve kterém existují dva porty dvou verzí rt36 a rt38. Instalace je snadná a množství p5-* balíčků se pohybuje okolo 160ti. Existují i rozšíření, o kterých se též zmíním.

[root@test ~]# cd /usr/ports/www/rt38/; make install clean

Poinstalační úkony jsou vesměs jasné, založíme databázi a vytvoříme uživatele, poté provedeme script, kterným naimportuje schéma databáze. Vše je popsané v poinstalačních informacích. Dále pak nakonfigurujeme Apache a MTA sendmail nebo postfix, to je na nás.

Na wiki tvůrců systému jsem zaznamenal nové perlové balíčky, které se v RT konfigurují jako Pluginy.

[root@test /usr/ports/www]# ls -1d p5-RT*
p5-RT-Authen-ExternalAuth
p5-RT-Client-REST
p5-RT-Extension-LDAPImport
p5-RT-Extension-SLA
p5-RTx-Calendar
p5-RTx-RightsMatrix
p5-RTx-Shredder
p5-RTx-Statistics


Nejzajímavějším rozšířením je p5-RT-Authen-ExternalAuth, které umožňuje autentizaci pomocí jakéhokoliv LDAPu. Danou funkcionalitu snad ověřím co nejdříve. Více o RT je např. zde. Pro seznámení se s touto sofistikovanou apliakcí existuje i kniha RT Essentials, kterou si musím pořídit do své knihovny. Další šikovný návod je zde.

úterý 8. září 2009

Apache2 a mod_macro

Pokud často konfigurujeme web server Apache a hlavně konfigurujeme např. velké množství Virtuálních serverů, je velmi vhodné použít modul mod_macro, který Vám usnadní konfiguraci a hlavě zkrátí délku samotné definice virtuálu. Šikovně nadefinovaný macro.conf může skutečně velmi pomoci. Pro funkční užití a natažení definic, je třeba mít nakonfigurován Apache s patřičnými flagy jako je -Don -Dtrue -Dyes.

V příladě Ubuntu je vhodné definovat flagy v envvars.

apache2 2.2.8-1ubuntu0.11
libapache2-mod-macro 1.1.4-3.1

joe /etc/apache2/envvars
export APACHE_ARGUMENTS="-Don -Dtrue -Dyes"

Dříve jsem modifikoval apache2ctl což po aktualizaci balíčku apache vyžadovalo znovu editovat tento startovaci script. Užitím proměnné si ulehčíme spoustu práce.

V příladě FreeBSD je vhodné definovat flagy v rc.conf.

apache-2.2.13 Version 2.2.x of Apache web server with prefork MPM.
mod_macro-1.1.10 Apache 2.2.x module for use macros in config files

joe /etc/rc.conf
apache22_enable="YES"
apache22_flags="-Don -Dtrue -Dyes"

pondělí 24. srpna 2009

Pragma: no-cache vs cache

Hledal jsem možnosti nastavení HTTP hlaviček, přesněji Pragma: no-cache. Na jednom serveru jsem se dostal do situcace, kde tomcat kontext /srv má globálně nastaveno no-cache ale já pro jeden adresář potřebuji vyjímku a potřebuji mít cache zapnutou. Jak na to, když se nikde o Pragma: cache nepíše. Jednoduše se to nastavit tak da a funguje to.

Location /srv/www/content/files/en/download-library/
Header set Pragma cache
Header set Cache-control cache
/Location


Tato taškařice se dělá jen kvuli tomu nejpoužívanějšímu prohlížeči, který i v poslední verzi nefunguje jak ma :-( a Pragma je vnímano prostě jinak. Podivnej je tento svět ...

Zajimavý příspěvek jsem vygoogli zde.

Musím ještě poznamenat, fakt, že to v IE s daným nastavením funguje neznamená že Pragma: cache je validní direktiva. Je velmi pravděpodobné, že správná funkce browseru je jen :-) správnou reakcí na chybnou hlavičku definovanou na daném adresáři. Pokud toto bude číst někdo znalý problematiky a nesouhlasí se mnou, uvítám jeho poznámku.