informatica:linux:apache2
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| informatica:linux:apache2 [2013/06/03 18:20] – jose | informatica:linux:apache2 [2018/02/17 19:44] (current) – javi | ||
|---|---|---|---|
| Line 98: | Line 98: | ||
| ===== Proxy inverso ===== | ===== Proxy inverso ===== | ||
| + | |||
| Line 111: | Line 112: | ||
| # ls -la | # ls -la | ||
| + | | ||
| proxy_http.load -> ../ | proxy_http.load -> ../ | ||
| proxy.load -> ../ | proxy.load -> ../ | ||
| Line 213: | Line 214: | ||
| SSLEngine on | SSLEngine on | ||
| SSLCertificateFile / | SSLCertificateFile / | ||
| + | SSLCertificateKeyFile / | ||
| + | |||
| SetEnvIf User-Agent " | SetEnvIf User-Agent " | ||
| | | ||
| Line 237: | Line 240: | ||
| </ | </ | ||
| - | ==== Pedir un certificado ==== | + | ==== Configurar autenticación con certificado |
| - | Para pedir un certificado | + | 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 | ||
| + | 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 / | ||
| + | |||
| + | Ahora en el servidor configuramos apache para que pida el certificado: | ||
| + | |||
| + | < | ||
| + | < | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Podemos poner mas restricciones, | ||
| < | < | ||
| < | < | ||
| Line 249: | Line 292: | ||
| Una de las condiciones de validación puede ser: | Una de las condiciones de validación puede ser: | ||
| - | | + | Por OU |
| + | SSLRequire %{SSL_CLIENT_S_DN_OU} in {"LEGIDO"} | ||
| + | Por IP: | ||
| + | SSLRequire %{REMOTE_ADDR} =~ m/ | ||
| ==== Sacar información de un certificado: | ==== Sacar información de un certificado: | ||
| Line 615: | Line 660: | ||
| sudo apachectl graceful | sudo apachectl graceful | ||
| + | | ||
| + | ===== Habilitar campos "last modified" | ||
| + | |||
| + | En la imagen de docker por defecto NO aparecen esos atributos. Cambios: | ||
| + | |||
| + | / | ||
| + | |||
| + | Descomentar esta linea: | ||
| + | |||
| + | Include 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 | ||
| + | |||
| + | < | ||
| + | RewriteEngine on | ||
| + | RewriteRule ^/$ http:// | ||
| + | |||
| + | ProxyRequests off | ||
| + | ProxyPreserveHost on | ||
| + | ProxyPass | ||
| + | ProxyPassReverse / http:// | ||
| + | </ | ||
| + | |||
| + | ==== Herramientas online útiles ==== | ||
| + | |||
| + | * Para generar: | ||
| + | |||
| + | https:// | ||
| + | |||
| + | * Para detectar qué regla se aplica en función de la url que se pone: | ||
| + | |||
| + | http:// | ||
| + | |||
informatica/linux/apache2.1370283651.txt.gz · Last modified: (external edit)
