User Tools

Site Tools


informatica:linux:apache2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatica:linux:apache2 [2013/07/03 09:02] – external edit 127.0.0.1informatica:linux:apache2 [2017/11/15 15:20] jose
Line 214: Line 214:
         SSLEngine on         SSLEngine on
                   SSLCertificateFile /etc/apache2/apache.pem                   SSLCertificateFile /etc/apache2/apache.pem
 +                  SSLCertificateKeyFile /etc/apache2/apache.key
 +
                   SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown                   SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
      
Line 238: Line 240:
   </VirtualHost>   </VirtualHost>
  
-==== Pedir un certificado ==== +==== Configurar autenticación con certificado personal ==== 
-Para pedir un certificado tenemos que poner lo siguiente:+Primero creamos la CA en el servidor 
 +  openssl genrsa -out ca.key 1024 
 +Luego una petición de certificado y lo firmamos: 
 +  openssl req -new -key ca.key -out ca.csr 
 +  openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt 
 + 
 +Ahora creamos el certificado para el apache: 
 +  openssl genrsa -out server.key 1024 
 +  openssl req -new -key server.key -out server.csr 
 +  openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt 
 + 
 + 
 + 
 +=== Cliente === 
 +Se genera un certificado que tiene que firmar la CA del servidor. Por ejemplo se puede crear desde un pc del usuario\\ 
 +Primero se genera la clave privada: 
 +  openssl genrsa -out client.key 1024 
 +Luego una request de certificado: 
 +  openssl req -new -key client.key -out client.csr -config openssl.cnf 
 + 
 +Se envía esta request al server para que la firme. Desde el servidor se firma: 
 +  openssl x509 -req -days 365 -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt 
 + 
 +Creamos el certificado con la clave privada y la clave pública: 
 +  openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12 
 +Ahora importamos el p12 en el navegador 
 + 
 +He tenido que añadir esto en virtualhost para que valide el certificado: 
 +  SSLCACertificateFile /etc/apache2/ca/ca.crt 
 + 
 +Ahora en el servidor configuramos apache para que pida el certificado: 
 + 
 +<code> 
 +<Location /cert> 
 +   SSLRequireSSL 
 +   SSLVerifyClient require 
 +   SSLVerifyDepth 10 
 +</Location> 
 +</code> 
 + 
 +Podemos poner mas restricciones, por ejemplo por IP o por OU
 <code> <code>
 <Location /cert> <Location /cert>
Line 250: Line 292:
  
 Una de las condiciones de validación puede ser: Una de las condiciones de validación puede ser:
-          SSLRequire %{SSL_CLIENT_S_DN_OU} in {"CEPSA"} +Por OU 
 + SSLRequire %{SSL_CLIENT_S_DN_OU} in {"LEGIDO"} 
 +Por IP: 
 +  SSLRequire %{REMOTE_ADDR} =~ m/^2\.139\.211\.[0-9]+$/
  
 ==== Sacar información de un certificado: ==== ==== Sacar información de un certificado: ====
Line 616: Line 660:
  
   sudo apachectl graceful   sudo apachectl graceful
 +  
 +  
 +===== Redirecciones =====
 +
 +  * El dominio raiz (y solo el dominio raiz) se redirecciona a otra URL y se para de procesar mas reglas
 +  * Se pasan todas las peticiones a un backend Tomcat
 +
 +<code>
 + RewriteEngine on
 + RewriteRule ^/$ http://example.com/my-tomcat-app1/ [R=301,L]
 +
 + ProxyRequests off
 + ProxyPreserveHost on
 + ProxyPass         / http://localhost:8080/
 + ProxyPassReverse / http://localhost:8080/
 +</code>
 +
 +==== Herramientas online útiles ====
 +
 +  * Para generar:
 +
 +https://websiteadvantage.com.au/HtAccess-301-Redirect-Generator#heading-ToolResult
 +
 +  * Para detectar qué regla se aplica en función de la url que se pone:
 +
 +http://htaccess.mwl.be/be
 +
informatica/linux/apache2.txt · Last modified: 2018/02/17 19:44 by javi