Salve a tutti.
Dunque devo fare un passaggio di certificati tra un apache e un'altro ma c'e' qualcosa che non torna.

Allora il primo apache viene contattato in https e deve rigirare in http l'header del certificato ad un secondo apache su cui risiede un php che dovra' gestirlo.

Nel primo apache gestisco la seguente configurazione:

codice:
RequestHeader set SSL_CLIENT_S_DN	""
	RequestHeader set SSL_CLIENT_I_DN	""
	RequestHeader set SSL_SERVER_S_DN_OU	""
	RequestHeader set SSL_CLIENT_VERIFY	""
	RequestHeader set SSL_CLIENT_V_START	""
	RequestHeader set SSL_CLIENT_V_END	""
	RequestHeader set SSL_CLIENT_M_VERSION	""
	RequestHeader set SSL_CLIENT_M_SERIAL	""
	RequestHeader set SSL_CLIENT_CERT	""
	RequestHeader set SSL_CLIENT_VERIFY	""
	RequestHeader set SSL_SERVER_M_SERIAL	""
	RequestHeader set SSL_SERVER_M_VERSION	""
	RequestHeader set SSL_SERVER_I_DN	""
	RequestHeader set SSL_SERVER_CERT	""

	<Location /TiMed>

		SSLVerifyClient require
		SSLVerifyDepth 10
		SSLOptions +ExportCertData +StrictRequire +OptRenegotiate

		RequestHeader set SSL_CLIENT_S_DN	"%{SSL_CLIENT_S_DN}s"
		RequestHeader set SSL_CLIENT_I_DN	"%{SSL_CLIENT_I_DN}s"
		RequestHeader set SSL_SERVER_S_DN_OU	"%{SSL_SERVER_S_DN_OU}s"
		RequestHeader set SSL_CLIENT_VERIFY	"%{SSL_CLIENT_VERIFY}s"
		RequestHeader set SSL_CLIENT_V_START	"%{SSL_CLIENT_V_START}s"
		RequestHeader set SSL_CLIENT_V_END	"%{SSL_CLIENT_V_END}s"
		RequestHeader set SSL_CLIENT_M_VERSION	"%{SSL_CLIENT_M_VERSION}s"
		RequestHeader set SSL_CLIENT_M_SERIAL	"%{SSL_CLIENT_M_SERIAL}s"
		RequestHeader set SSL_CLIENT_CERT	"%{SSL_CLIENT_CERT}s"
		RequestHeader set SSL_CLIENT_VERIFY	"%{SSL_CLIENT_VERIFY}s"
		RequestHeader set SSL_SERVER_M_VERSION	"%{SSL_SERVER_VERSION}s"
		RequestHeader set SSL_SERVER_I_DN	"%{SSL_SERVER_I_DN}s"
		RequestHeader set SSL_SERVER_CERT	"%{SSL_SERVER_CERT}s"

		ProxyPass http://ipaddress:8080/MyApp/
		ProxyPassReverse http://ipaddress:8080/MyApp/	


	</Location>
Mentre sul secondo apache (che e' stato impostato per ascoltare sulla 8080 viene eseguito il seguente codice php:

codice:
$headers = apache_request_headers();
$cert=$headers['SSL_CLIENT_CERT'];
echo "CERT: ".$cert;
$cert_data = openssl_x509_parse($cert,true);
echo "CERT_DATA: ".$cert_data;
Quello che succede e' che il primo echo mi stampa un certificato mentre il secondo echo e' vuoto come se openssl_x509_parse fallisse nella parsificazione.
Se invece accedo direttamente al secondo apache in https passando il certificato e leggendolo con openssl_x509_parse($_SERVER[SSL_CLIENT_CERT]) il tutto funziona!

Io vorrei usare questo bridge ma non riesco a capire per quale motivo se passo a openssl_x509_parse il contenuto di $headers['SSL_CLIENT_CERT'] non funziona mentre se accedo direttamente e gli passo $_SERVER[SSL_CLIENT_CERT] funziona!

Ciao a tutti e grazie
Sandro