RH: OpenSSL connect via a proxy
Soms is het handig om met openssl te connecten met een externe website om te kijken of de communicatie goed gaat.
In Enterprise omgevingen kun je niet direct naar het Internet verbinden ivm de nodige firewall(s).
Wanneer je dit test met openssl zul je waarschijnlijk een “Connection refused” krijgen of dat je connectie blijft hangen :
$ echo| openssl s_client -connect google.com:443
socket: Connection refused
connect:errno=111
Gekukkig is er vaak wel een Proxy server waarmee je applicaties veilig kunt laten verbinden naar het Internet.
Na heel wat gestest en gevloek kom je er dan achter dat de implentatie van openssl geen proxy support heeft en je dit op die manier dus niet kunt testen.
Hoe kun je dan testen of je connectie naar het Internet kunt maken.
Als eerste kun je testen of je uberhaupt naar het Internet kunt verbinden via een proxy
# Stel via command line proxy instellingen in :
$ export {http,https,ftp}_proxy=”xxx.xxx.xxx.xxx:8080″
$ export {HTTP,HTTPS}_PROXY=”xxx.xxx.xxx.xxx:8080″
# Test Internet connectie ( wat is IP adres van de buitenkant van het bedrijf )
$ wget -q -O – checkip.dyndns.org | sed -e ‘s/.*Current IP Address: //’ -e ‘s/<.*$//’
<IP adres>
# Wanneer bovenstaande werkt zul je moeten testen of je beveiligde verbinging kunt opzetten.
Omdat dit dus niet kan via openssl zullen we een workaround moeten gebruiken. Dit kun je doen door proxytunnel (tijdelijk) te installeren.
De RedHat/CentOS packages kun je hier vinden : http://pkgs.repoforge.org/proxytunnel/
Nadat deze is geinstalleerd kun je je beveiligde verbinding met openssl via proxytunnel toch testen :
$ proxytunnel -p <proxyIP>:<proxyPort> -d google.com:443 -a 7000 & openssl s_client -connect localhost:7000 2>/dev/null | openssl x509 -noout -dates
notBefore=Apr 23 12:16:09 2014 GMT
notAfter=Jul 22 00:00:00 2014 GMT# Omdat ProxyTunnel een daemon start is het handig om direct de daemon na het testen te stoppen
$ kill `ps -ef | grep proxytunnel | grep -v grep | awk ‘{print $2}’`
Leave a comment