5 votos

¿Cómo puedo crear un encabezado personalizado a partir de una existente SSL variable de entorno?

OK me he pasado todo el día en este ...

Estoy usando el apache con mod_ssl Estoy tratando de tomar de un entorno existente encabezado, "%{SSL_CLIENT_S_DN_CN}s" que parece "Lastname Firstname Mi nombre de usuario" y establecer un nuevo encabezado de nombre de USUARIO y establecer que el equivalente a sólo el nombre de usuario (los caracteres entre el último espacio y el final de la cadena)

Entonces yo les proxy inverso que encabezado a un servidor de host que lo utilizan para identificar al usuario.

He probado un montón de cosas diferentes. No sé si el problema es que no entiendo perl regex o si, no entiendo la sintaxis o que no voy a poner en el lugar correcto, o los tres.

Aquí está un ejemplo de una cosa que he intentado:

SetEnvIf SSL_CLIENT_S_DN_CN (.*\ )(.*) newhostname=$2
RequestHeader set HOSTNAME "%{newhostname}e"

Todo lo que realmente quiero es un nuevo encabezado el nombre del host al igual que el último no-caracteres de espacio en blanco en la DN_CN variable de entorno.

3voto

khaki54 Puntos 188

Ok ... me lo imaginé medio de la semana, pero aún así quería dar a alguien la oportunidad de ganar la recompensa.

Sorprendentemente, esto no está muy bien documentado en ninguna parte, pero como me mod_headers para hacer esto usted puede encontrar que la documentación aquí.

Lo que quiero hacer es establecer el encabezado, si le agarras de ssl o el medio ambiente. A continuación, puede editar el encabezado en lugar de usar regex y captura de los grupos.

Algunos ejemplos:


 RequestHeader conjunto REMOTE_USER "%{SSL_CLIENT_S_DN_CN}s"
 RequestHeader editar REMOTE_USER (.*\s)(.*) $2
 RequestHeader conjunto AUTHENTICATE_CN "%{SSL_CLIENT_S_DN_CN}s"
 RequestHeader editar AUTHENTICATE_CN (.*\s)(.*) $1
 RequestHeader conjunto AUTHENTICATE_MAIL "%{SSL_CLIENT_S_DN_CN}s"
 RequestHeader editar AUTHENTICATE_MAIL (.*\s)(.*) $2@gmail.com 

1voto

Richard Salts Puntos 484

Yo uso el AuthBasicFake directiva que establece el encabezado y, a continuación, usted puede hacer la ProxyPass en el mismo bloque de Ubicación. Sería algo parecido a esto:
<Location "/blah">
AuthBasicFake %{SSL_CLIENT_S_DN_CN}
ProxyPass http://example.org/blah
</Location>

Si usted tiene algunos otros x509 atributos en el sujeto como el nombre de usuario en su propio, usted podría utilizar SSL_CLIENT_S_DN_uid o SSL_CLIENT_S_DN_email.

0voto

GioMac Puntos 2749

Nunca había hecho esto con SSL (y yo realmente no lo entiendo aquí), pero mod_security podría ser una respuesta. Se puede volver a escribir/agregar/reemplazar/patch nada dentro de descifrar el contenido.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: