2011-09-20 10 views
5

Mi primera pregunta: ¿no es posible usar https sin usar un certificado digital? Mi segunda pregunta: estoy asegurando algunas páginas dentro de mi aplicación web. Así que agregué el siguienteConfiguración de Tomcat para usar 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> 

He intentado ejecutar la aplicación y no se cargan las páginas para las cuales ssl está habilitado. Así que seguí adelante con la creación de certificado. Se agregó lo siguiente en 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" /> 

Todavía estoy podido acceder a esas páginas ni https://localhost:8443.

+0

No es para la aplicación pública de internet. Es prueba. – John

+0

También creé la clave 'keytool -genkey -alias tomcat -keyalg RSA -validity 100' y copié el archivo .keystore en el directorio mencionado anteriormente. – John

Respuesta

9

Cambiar el protocolo de protocol="org.apache.coyote.http11.Http11Protocol"

Esto va a resolver el problema.

+0

¿Por qué? ¿Cuáles son las diferencias entre especificar org.apache.coyote.http11.Http11Protocol y http/1.1? – Kevin

+0

@Kevin, el valor 'HTTP/1.1' significa que la implementación de SSL será elegida por Tomcat. Si APR está habilitado, entonces Tomcat prefiere la implementación de APR. Pero los atributos keystoreFiles, keystorePass están reservados para la configuración de JSSE. El valor 'org.apache.coyote.http11.Http11Protocol' significa que desea utilizar la implementación de JSSE, que es coherente con su configuración. – Hubert

6

¿Qué formato de almacén de claves está utilizando? Creo que el valor predeterminado en la configuración de Tomcat es un JKS, pero si está usando un PKCS # 12 (extensión .p12 o .pfx), tendrá que especificar eso.
Tenga en cuenta 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

Debo utilizar la configuración predeterminada. No cambié ninguna configuración, de hecho, no sé lo que significa ... – John

+0

¿Ve algún error en los archivos de registro que indique cuál podría ser el problema? Busque en el directorio de registro para catalina.err. –

+0

'No hay archivo de certificado especificado o formato de archivo no válido' – John

Cuestiones relacionadas