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:21] – jose | informatica:linux:apache2 [2018/02/17 19:44] (current) – javi | ||
---|---|---|---|
Line 214: | Line 214: | ||
SSLEngine on | SSLEngine on | ||
SSLCertificateFile / | SSLCertificateFile / | ||
+ | SSLCertificateKeyFile / | ||
+ | |||
SetEnvIf User-Agent " | SetEnvIf User-Agent " | ||
| | ||
Line 238: | 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 250: | 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 616: | 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.1370283673.txt.gz · Last modified: 2015/04/13 20:19 (external edit)