Diferencia entre revisiones de «Tomcat»

De Ardemans Wiki
Saltar a: navegación, buscar
(Nueva página: Para hacer que una aplicación haga redirección y vaya siempre por el puerto SSL se puede hacer modificando la configuración de la aplicación. Editamos el fichero $CATALINA_HOME/...)
 
 
(4 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 +
 +
== Redirección de aplicacion a SSL ==
  
 
Para hacer que una aplicación haga redirección y vaya siempre por el puerto SSL se puede hacer modificando la configuración de la aplicación.
 
Para hacer que una aplicación haga redirección y vaya siempre por el puerto SSL se puede hacer modificando la configuración de la aplicación.
Línea 4: Línea 6:
 
Editamos el fichero $CATALINA_HOME/webapps/<aplicacion>/WEB-INF/web.xml y añadimos lo siguiente:
 
Editamos el fichero $CATALINA_HOME/webapps/<aplicacion>/WEB-INF/web.xml y añadimos lo siguiente:
  
 +
<pre>
 
<security-constraint>
 
<security-constraint>
 
<web-resource-collection>
 
<web-resource-collection>
Línea 13: Línea 16:
 
</user-data-constraint>
 
</user-data-constraint>
 
</security-constraint>  
 
</security-constraint>  
 +
</pre>
  
 
Esto lo añadimos al final del fichero pero siempre dentro del tag <web-app>
 
Esto lo añadimos al final del fichero pero siempre dentro del tag <web-app>
 +
 +
 +
 +
== Importar certificado con llave privada ==
 +
 +
Uno de los problemas que tuve fue al importar el certificado de mi entidad de windows al keystorage de java. Resulta que la utilidad keytool de java no importa certificados con llave privada, por lo tanto hay que hacer un truco para poder importarlo.
 +
 +
Por un lado hemos de tener tanto el fichero del certificado como el fichero de la llave privada
 +
 +
Después podemos usar el openssl para genera un fichero pkcs12 que incluye tanto el certificado como la llave privada.
 +
 +
En mi caso, mi fichero de certificado se llama sfocalp01.cer y el de clave privada es sfocalp01.key
 +
 +
<pre>
 +
openssl pkcs12 -export -in sfocalp01.cer -inkey sfocalp01.key -out sfocalp01.p12 -name tomcat -CAfile cacert.cer
 +
</pre>
 +
 +
Es importante poner una contraseña que pide, ya que la utilidad keytool de java tambien falla si no tiene contraseña.
 +
 +
Despues usaremos el keytool:
 +
 +
<pre>
 +
/usr/local/java/bin/keytool -importkeystore -deststorepass <<contraseña>> -destkeypass <<contraseña>> -destkeystore keystore.jks -srckeystore sfocalp01.p12 -srcstoretype PKCS12 -srcstorepass <<contraseña>> -alias tomcat
 +
</pre>
 +
 +
con eso ya tenemos un fichero que se llama keystore.jks que  podemos usar en nuestra configuracion de tomcat. Modificamos el server.xml:
 +
 +
<pre>
 +
    <Connector port="8443" maxHttpHeaderSize="8192"
 +
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
 +
              enableLookups="false" disableUploadTimeout="true"
 +
              acceptCount="100" scheme="https" secure="true"
 +
              clientAuth="false" sslProtocol="TLS" SSLEnabled="true"
 +
                keystoreFile='/root/keystore.jks' keystorePass='<<contraseña>>'/>
 +
</pre>

Última revisión de 17:51 22 ago 2011

Redirección de aplicacion a SSL

Para hacer que una aplicación haga redirección y vaya siempre por el puerto SSL se puede hacer modificando la configuración de la aplicación.

Editamos el fichero $CATALINA_HOME/webapps/<aplicacion>/WEB-INF/web.xml y añadimos lo siguiente:

<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint> 

Esto lo añadimos al final del fichero pero siempre dentro del tag <web-app>


Importar certificado con llave privada

Uno de los problemas que tuve fue al importar el certificado de mi entidad de windows al keystorage de java. Resulta que la utilidad keytool de java no importa certificados con llave privada, por lo tanto hay que hacer un truco para poder importarlo.

Por un lado hemos de tener tanto el fichero del certificado como el fichero de la llave privada

Después podemos usar el openssl para genera un fichero pkcs12 que incluye tanto el certificado como la llave privada.

En mi caso, mi fichero de certificado se llama sfocalp01.cer y el de clave privada es sfocalp01.key

openssl pkcs12 -export -in sfocalp01.cer -inkey sfocalp01.key -out sfocalp01.p12 -name tomcat -CAfile cacert.cer

Es importante poner una contraseña que pide, ya que la utilidad keytool de java tambien falla si no tiene contraseña.

Despues usaremos el keytool:

/usr/local/java/bin/keytool -importkeystore -deststorepass <<contraseña>> -destkeypass <<contraseña>> -destkeystore keystore.jks -srckeystore sfocalp01.p12 -srcstoretype PKCS12 -srcstorepass <<contraseña>> -alias tomcat

con eso ya tenemos un fichero que se llama keystore.jks que podemos usar en nuestra configuracion de tomcat. Modificamos el server.xml:

    <Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" SSLEnabled="true"
                keystoreFile='/root/keystore.jks' keystorePass='<<contraseña>>'/>