NOTA: se si desidera visualizzare il comportamento di questa app dimostrativa, visitare www.collaborativepowernowinternational.us. Qui, seleziona testssl.PersonController e puoi creare una persona. Quindi vai e modifica la persona, dove è designato il canale SSL, che darà un ciclo di reindirizzamento.molo 9: impostazione SSL/https di base
Sembra che con Jetty 9 altri elementi di configurazione siano entrati nel file start.ini, ho la versione 9.05.
Al fine di testare le più elementari SSL/HTTPS, sto decommentando le seguenti righe in 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
Nessun altro cambiamento di configurazione Jetty. Poi ho creato l'app di Grails più elementare (ha una classe Person) in cui ho impostato alcune azioni del controller da proteggere, il che funziona bene sulla mia macchina di sviluppo utilizzando una versione di Jetty incorporata più vecchia (che include Grails). Questo viene fatto semplicemente inserendo la primavera-security-core e quindi aggiungendo le seguenti righe in un file di configurazione:
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
Quando accedo l'azione persona/modificare ottengo un loop di reindirizzamento nel browser (utilizzando file WAR distribuito al Jetty 9 su una macchina dedicata CentOs 6). Questo sta usando il keystore fornito con Jetty 9, semplicemente decommentando le righe in start.ini per usarlo.
La pagina di configurazione principale di Jetty SSL che sto leggendo è here. Ciò che non mi è chiaro è, è sufficiente aggiornare il file start.ini? Se no, come esattamente si fa a aggiungere le linee in molo-https.xml descritti in questo link precedente, vale a dire le linee:
<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>
Non sono sicuro su come aggiungerli, ma sembrano anche un duplicato della partenza. righe di file ini sopra.
Potete aiutarmi per favore ad aiutarmi a far funzionare il Jetty SSL più semplice? Grazie mille.
Se non hanno familiarità con Grails, si può semplicemente scaricare il programma, quindi creare una classe di dominio - v'è un'opzione di riga di comando per questo. Dagli quindi i campi String firstName, String lastName. Poi ci sono i comandi per generare un controller e le visualizzazioni per esso - questo è tutto completamente automatico. Quindi si aggiunge il plugin, spring-security-core. Nel capitolo 16/17 di questo documento e come ho mostrato, quando elenca quali azioni del controllore sono sicure, come persona/modifica.
Grazie! Si scopre che Grails consente di specificare canali sicuri che funzionano "sul desktop" con una versione di Jetty più vecchia tramite plugin, ma non funziona nelle nuove versioni di Jetty (che sto distribuendo anch'io). Quel problema in combinazione con il flusso di come attivare SSL e specificare i certificati tra il molo 9.05/9.06 (tramite start.ini) e la versione più recente di Jetty 9.10 mi ha buttato fuori - non riuscivo a far funzionare nulla. – Ray
Grazie per aver chiarito la versione corretta da utilizzare, ad esempio 9.06, poiché il meccanismo di configurazione per 9.10 è finalizzato e la documentazione associata viene aggiornata. – Ray