HTTPS instellen op een jBoss instantie

Veelal wordt een HTTPS verbinding in webapplicatie gebruikt om bepaalde content af te schermen voor onbedoelde lezers.
In de webserver configuratie kan worden afgedwongen dat deze ‘paginas’ middels HTTPS moeten worden benaderd en eventueel wordt hiervoor automatisch een redirect van HTTP naar de HTTPS variant geregeld.

Een ontwikkelaar heeft vaak geen webserver op zijn ontwikkelmachine beschikbaar, danwel is het inregelen van de configuratie teveel werk voor wat het oplevert.
De meeste applicatieservers hebben de mogelijkheid om zelf als (al dan niet beperkte) webserver te fungeren.

In bijvoorbeeld JBoss is het mogelijk om de webserver configuratie aan te passen zodat deze ook met HTTPS verkeer kan omgaan. Hieronder staat beschreven hoe:

* Voer het volgende commando uit: keytool -genkey -alias jboss -keyalg RSA -keystore ./jBossKeystore
Er zal gevraagd worden om een keystore password. Onthoud dit wachtwoord,het wordt later gebruikt.
Vul de opvolgende vragen in en houdt het key wachtwoord hetzelfde als de keystore.

* Het resultaat van de keytool is een bestand met de naam jBossKeystore. Kopieer dit naar de conf directory van de jboss instantie waar HTTPS beschikbaar gemaakt moet worden, bijvoorbeeld [jBoss server locatie]/conf

* De volgende stap is het wijzigen van de server.xml, deze staat waarschijnlijk in [jBoss server locatie]/deploy/jboss-web.deployer
Zoek in het server.xml bestand naar de Connector definitie waar port 8443 gedefinieerd is.
Haal de commentaarmarkering voor deze Connector weg en voeg de volgende attributen toe:

keystoreFile=”${jboss.server.home.dir}/conf/jBossKeystore”
keystorePass= Vul hier het wachtwoord van de keystore in zoals die is gebruikt in de keytool!

Sla de wijzigingen in de server.xml op en herstart de jBoss instantie.

* Open een browser en ga naar een applicatie binnen de jBoss instantie gebruikt makende van HTTPS.
De browser zal een melding geven van een onvertrouwd certificaat. Accepteer het certificaat om dit stappenplan te voltooien.

Let op:
Om bandbreedte te besparen en om performance redenen kan ervoor gekozen zijn om op de productieomgeving het verkeer tussen de webserver en de applicatieserver niet over HTTPS te laten plaatsvinden. Dit heeft als consequentie dat de HttpServletRequest.isSecure() methode niet het verwachte resultaat zal opleveren.

Gelukkig heeft Apache hiervoor een oplossing in de vorm van het toevoegen van HTTPHeader informatie richting de applicatieserver. Bijvoorbeeld een X-Forwarded-Port kan worden gebruikt om aan te geven over welk portnummer de gebruiker de applicatie heeft benaderd. Indien de gebruiker met HTTP de applicatie benaderd dan zal dit portnummer 80 zijn, indien de gebruiker over HTTPS de applicatie benaderd dan zal dit 443 zijn.

Vraag bij de administrator van dewebserver en/of de applicatieserver na hoe deze communicatie geregeld is!

Comments are closed.

Algemeen (9)
GlassFish (49)
Java (58)
Managed Services (10)
Oracle (120)
Private Cloud Hosting (2)
SOA/BPEL/ESB (11)
Software development (92)
Strategie (7)
WSO2 (2)

WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.

  • 071 - 82 000 82
  • Rijndijk 137 | 2394 AG Hazerswoude-Rijndijk
Oracle SOA specialized partner
Java
GlassFish
WSO2
DEMO
i-bridge
Rabobank
Greencat
Jan de Rijk
Reuma Revalidatie Rotterdam
Robeco
VU Medisch Centrum
CHS
LUMC
TomTom
TKP
NCCW
Erasmus MC
UMCG
VIR
ANWB
BVA Auctions
D-Reizen
STEDIN