2011-09-20 2 views
5

La mia prima domanda: non è possibile utilizzare https senza utilizzare un certificato digitale? La mia seconda domanda: sto proteggendo alcune pagine all'interno della mia applicazione web. Quindi aggiunto il seguenteConfigurazione di Tomcat per l'uso di SSL

<security-constraint> 
    <web-resource-collection> 
     ...... 
    </web-resource-collection> 
    <auth-constraint> 
     ...... 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

Ho provato a eseguire l'app e le pagine per cui ssl è abilitato non vengono caricate. Quindi sono andato avanti con la creazione del certificato. Aggiunto quanto segue in server.xml?

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
     maxThreads="150" 
     scheme="https" 
     secure="true" 
     keystoreFile="C:\Program Files\apache-tomcat-7.0.11-windows-x86\apache-tomcat-7.0.11\.keystore" 
     keystorePass="johneipe" 
     clientAuth="optional" 
     sslProtocol="TLS" /> 

Ancora non riesco ad accedere a quelle pagine né a https://localhost:8443.

+0

Non è per applicazioni Internet pubbliche. È una prova. – John

+0

Inoltre ho creato la chiave 'keytool -genkey -alias tomcat -keyalg RSA -validity 100' e ho copiato il file .keystore nella directory menzionata sopra. – John

risposta

9

Cambia il protocollo per protocol="org.apache.coyote.http11.Http11Protocol"

questo risolverà il problema.

+0

Perché? Quali sono le differenze tra la specifica di org.apache.coyote.http11.Http11Protocol e http/1.1? – Kevin

+0

@Kevin, valore 'HTTP/1.1' significa che l'implementazione SSL sarà scelta da Tomcat. Se l'APR è abilitato, Tomcat preferisce l'implementazione APR. Ma atributes keystoreFiles, keystorePass sono riservati per la configurazione JSSE. Valore 'org.apache.coyote.http11.Http11Protocol' significa che si desidera utilizzare l'implementazione JSSE, che è coerente con la configurazione. – Hubert

6

Quale formato di keystore stai usando? Credo che il default nella configurazione di Tomcat sia un JKS, ma se stai usando un'estensione PKCS # 12 (.p12 o .pfx), dovrai specificarlo.
Nota keystoreType = "PKCS12".

<Connector port="1443" 
      maxThreads="200" 
      enableLookups="false" disableUploadTimeout="true" 
      acceptCount="100" debug="0" scheme="https" secure="true" 
      clientAuth="false" sslProtocol="TLS" SSLEnabled="true" 
      keystoreFile="/opt/companyName/tomcat.keystore" 
      keystoreType="PKCS12" 
      keystorePass="password" 
      ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA" 
      URIEncoding="UTF-8" 
     /> 
+0

Devo usare l'impostazione predefinita. Non ho cambiato nessuna impostazione, in effetti non so cosa significhi .. – John

+0

Vedi qualche errore nei file di registro che indica quale potrebbe essere il problema? Cerca nella directory del registro per catalina.err. –

+0

'Nessun file certificato specificato o formato file non valido' – John