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
informatica:linux:apache2 [2013/07/03 09:02] – external edit 127.0.0.1informatica:linux:apache2 [2018/02/17 19:44] (current) javi
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
 +  
 +===== Habilitar campos "last modified" etc. en listado de directorios =====
 +
 +En la imagen de docker por defecto NO aparecen esos atributos. Cambios:
 +
 +   /usr/local/apache2/conf/httpd.conf
 +
 +Descomentar esta linea:
 +
 +  Include conf/extra/httpd-autoindex.conf
 +  
 +===== 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.1372842169.txt.gz · Last modified: 2015/04/13 20:19 (external edit)