UWAGA: Jeśli chcesz zobaczyć zachowanie tej aplikacji demonstracyjnej, po prostu wejdź na stronę www.laboratoryjne.pl. Tutaj wybierz testssl.PersonController i możesz utworzyć osobę. Następnie idź i edytuj osobę, w której wyznaczony jest kanał SSL, co da pętlę przekierowania.pomost 9: konfiguracja najbardziej podstawowego protokołu SSL/https
Wygląda na to, że z Jetty 9 kolejnych elementów konfiguracji trafiło do pliku start.ini, mam wersję 9.05.
W celu przetestowania najbardziej podstawowe SSL/HTTPS, jestem odkomentowanie następujące wiersze w start.ini:
#===========================================================
# SSL Context
# Create the keystore and trust store for use by
# HTTPS and SPDY
#-----------------------------------------------------------
jetty.keystore=etc/keystore
jetty.keystore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
jetty.keymanager.password=OBF:1u2u1wml1z7s1z7a1wnl1u2g
jetty.truststore=etc/keystore
jetty.truststore.password=OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4
jetty.secure.port=8443
etc/jetty-ssl.xml
#===========================================================
# HTTPS Connector
# Must be used with jetty-ssl.xml
#-----------------------------------------------------------
jetty.https.port=8443
etc/jetty-https.xml
żadnych innych zmian konfiguracyjnych Jetty. Następnie zbudowałem najbardziej podstawową aplikację Grails (ma klasę Person), w której ustawiam pewne akcje kontrolera, aby zabezpieczyć, co działa dobrze na mojej maszynie programistycznej, używając starszej wersji Jetty (którą zawiera Grails). Odbywa się to po prostu w tym wiosna-security-rdzeń, a następnie dodając następujące wiersze do pliku konfiguracyjnego:
grails.plugins.springsecurity.secureChannel.definition = [
'/person/list': 'REQUIRES_INSECURE_CHANNEL',
'/person/delete/**': 'REQUIRES_SECURE_CHANNEL',
'/person/edit/**': 'REQUIRES_SECURE_CHANNEL',
'/person/show': 'REQUIRES_INSECURE_CHANNEL'
]
grails.plugins.springsecurity.portMapper.httpPort=80
grails.plugins.springsecurity.portMapper.httpsPort=443
Kiedy dostęp akcję osoba/edycji mam pętlę przekierowania w przeglądarce (używając wdrożony plik WAR do Jetty 9 na dedykowanej maszynie CentOs 6). Jest to przy użyciu dostarczonego magazynu kluczy, który jest dostarczany z Jetty 9, po prostu odkomentuj linie w pliku start.ini, aby go użyć.
Główną stroną konfiguracji Jetty SSL jest here. Nie jest dla mnie jasne, czy wystarczy zaktualizować plik start.ini? Jeśli nie, w jaki dokładnie sposób można dodać linie w pomost-https.xml opisane w niniejszym linka, czyli linie:
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
<Set name="KeyStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
<Set name="KeyStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
<Set name="KeyManagerPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
<Set name="TrustStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
<Set name="TrustStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
</New>
Nie wiesz, jak je dodać, ale wydają się one również duplikat początku. linie pliku ini powyżej.
Czy możesz pomóc mi uzyskać najbardziej podstawową wersję Jetty SSL? Dzięki wielkie.
Jeśli nie jesteś zaznajomiony z Grails, możesz go po prostu pobrać, a następnie utworzyć klasę domeny - istnieje opcja wiersza poleceń. Następnie podaj pola pola String firstName, String lastName. Następnie są polecenia do generowania kontrolera i widoki dla niego - to wszystko jest całkowicie automatyczne. Następnie dodaje się wtyczkę, spring-security-core. W rozdziale 16/17 tego dokumentu i jak już pokazałem, kiedy listy kontrolują akcje kontrolera, takie jak osoba/edycja.
Dzięki! Okazuje się, że Grails pozwala na określenie bezpiecznych kanałów, które działają "na pulpicie" ze starszą wersją Jetty za pośrednictwem wtyczki, ale nie działa w nowszych wersjach Jetty (które też wdrażam). Ta kwestia w połączeniu ze zmianą sposobu włączania SSL i określania certyfikatów między Jetty 9.05/9.06 (via start.ini) i nowszą wersją Jetty 9.10 wyrzuciła mnie - nic nie dało się uruchomić. – Ray
Dziękujemy za wyjaśnienie odpowiedniej wersji do użycia - na przykład 9.06, ponieważ mechanizm konfiguracji dla wersji 9.10 został sfinalizowany, a powiązana dokumentacja jest aktualizowana. – Ray