s7nio / de-th-wildau-im14-project-webapp

TH-Wildau - WIR - IM14 - WebApp - Java EE security project
0 stars 0 forks source link

SSL/https configuration #22

Closed s7nio closed 10 years ago

s7nio commented 10 years ago

Terminal > create server.keystore

cd /PATH/wildfly/standalone/configuration
keytool -genkey -alias server -keyalg RSA -keystore server.keystore -validity 365

Edit standalone(*).xml

       ...
       <security-realms>
            <security-realm name="httpsRealm">
                <server-identities>
                    <ssl>
                        <keystore path="server.keystore" relative-to="jboss.server.config.dir" keystore-password="wildfly" key-password="wildfly"/>
                    </ssl>
                </server-identities>
            </security-realm>
       ...
       <subsystem xmlns="urn:jboss:domain:undertow:1.1">
            <buffer-cache name="default"/>
            <server name="default-server">
                <https-listener name="default-https" socket-binding="https" security-realm="httpsRealm"/>
       ...
       <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
            <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
            <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
            <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
            <socket-binding name="http" port="${jboss.http.port:8080}"/>
            <socket-binding name="https" port="${jboss.https.port:8443}"/>
       ...
s7nio commented 10 years ago

web.xml

        ...
        <servlet>
                <servlet-name>Faces Servlet</servlet-name>
                <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
                <!-- force https -->
                <init-param>
                        <param-name>protocoll</param-name>
                        <param-value>https</param-value>
                </init-param>
                <load-on-startup>1</load-on-startup>
        </servlet>
        ...
        <security-constraint>
            <web-resource-collection>
                <web-resource-name>*</web-resource-name>
                <url-pattern>*.xhtml</url-pattern>
                <url-pattern>/</url-pattern>
            </web-resource-collection>
            <user-data-constraint>
                <transport-guarantee>CONFIDENTIAL</transport-guarantee>
            </user-data-constraint>
        </security-constraint>
        ...
SebastianFo commented 10 years ago

Ich muss ja beim anlegen des Zertifikats einige daten eingeben. Ist davon etwas wichtig? Zum Beispiel: Muss das passwort, bei den von dir hier gegebenen vorgaben auf "wildfly" gesetzt werden? Ich habe auch gelesen, bei First und last name soll man die adresse eingeben, soll da also "localhost:8080/was" hin?

s7nio commented 10 years ago

Beim Zertifikat sind alle Daten wichtig. Bei dem Beispiel kannst du wählen, was du möchtest. Musst ggf nur das Beispielpasswort 'wildfly' in der standalone* anpassen.

SebastianFo commented 10 years ago

Bei dem Inhalt der Standalone-full.xml beim Tag "socket-binding-group": Was genau ist da eigentlich anders? Bei mir sah das unter dem von anfang an schon so aus, bei den subsystem und den security-realm musste ich was dazufügen, aber nicht bei der group.

s7nio commented 10 years ago

na wie der name schon sagt... der Server muss ja an irgendwelche Ports lauschen, damit er die darauf kommenden Anfragen abarbeiten kann bzw die Webseite ausliefert. Es stimmt :8080 (http) und :8443 (https) stehen schon per se drin. Musste also beim socket-binding-group nix weiter ergänzen.

Funktioniert der Aufruf https://127.0.0.1:8443/was ?

SebastianFo commented 10 years ago

Der letzte Zustand bei mir war und ist ja, dass ich garnicht erfolgrecih deployen kann wegen missing dependencies.

Muss man vielleicht noch irgendwas in der jboss-web.xml ändern?

Ne Seite wo etwas beschrieben wird, das ähnlich aussieht wie der Vorgang bei uns hatte da nämlich auch noch einen Schritt. http://programmaremobile.blogspot.de/2014/09/wildfly-ssl-client-authentication.html

s7nio commented 10 years ago

läuft nun bei beiden.