<?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>David Barbarin &#187; certificat</title>
	<atom:link href="https://blog.developpez.com/mikedavem/ptag/certificat/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/mikedavem</link>
	<description>MVP DataPlatform - MCM SQL Server</description>
	<lastBuildDate>Thu, 09 Sep 2021 21:19:50 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Utiliser le m&#234;me certificat pour chiffrer les connexions SQL Server en SSL et pour TDE ?</title>
		<link>https://blog.developpez.com/mikedavem/p11713/sql-server-2005/utiliser-le-mme-certificat-pour-chiffrer-les-connexions-sql-server-en-ssl-et-pour-tde</link>
		<comments>https://blog.developpez.com/mikedavem/p11713/sql-server-2005/utiliser-le-mme-certificat-pour-chiffrer-les-connexions-sql-server-en-ssl-et-pour-tde#comments</comments>
		<pubDate>Sun, 13 Jan 2013 11:42:32 +0000</pubDate>
		<dc:creator><![CDATA[mikedavem]]></dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SQL Server 2012]]></category>
		<category><![CDATA[certificat]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tde]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/mikedavem/?p=348</guid>
		<description><![CDATA[Lors d&#8217;une de mes dernières interventions nous avions implémenté chez un client le chiffrage des connexions SQL Server via SSL avec la mise en place d&#8217;un certificat. Ce même client m&#8217; a demandé s&#8217;il était possible d&#8217;utiliser ce même certificat &#8230; <a href="https://blog.developpez.com/mikedavem/p11713/sql-server-2005/utiliser-le-mme-certificat-pour-chiffrer-les-connexions-sql-server-en-ssl-et-pour-tde">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Lors d&rsquo;une de mes dernières interventions nous avions implémenté chez un client le chiffrage des connexions SQL Server via SSL avec la mise en place d&rsquo;un certificat. Ce même client m&rsquo; a demandé s&rsquo;il était possible d&rsquo;utiliser ce même certificat pour chiffrer une de leurs bases de données via TDE au lieu d&rsquo;utiliser un certificat auto-signé. Vu de loin on pourrait penser que oui et que l&rsquo;implémentation du certificat dans SQL Server est une chose aisée mais il n&rsquo;en est rien. La raison est la suivante : l&rsquo;export du certificat avec la clé privée au travers du magasin de certificat Windows génère un fichier avec l&rsquo;extension .pfx qui n&rsquo;est pas exploitable directement par SQL Server. Il faut donc trouver un moyen d&rsquo;extraire de ce fichier le certificat et la clé privée dans 2 fichiers .cer et .pvk. Pour cela nous allons utiliser openssl. </p>
<p>&#160;</p>
<p>Pour commencer et après avoir exporté le certificat du magasin certificat, on se retrouve avec un fichier ayant l&rsquo;extension .pfx. Ce fichier stocke notre certificat, la clé publique et la clé privée. </p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image4.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb4.png" width="590" height="182" /></a></p>
<p> &#8230;
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image5.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb5.png" width="597" height="32" /></a></p>
<p>&#160;</p>
<p>Ensuite j&rsquo;ai utilisé la version light de SSL (Win32_OpenSSL_v1.0.1c_light) et j&rsquo;ai installé au préalable les composants redistribuables C++ 2008 (prérequis à l&rsquo;installation de openSSL).</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image6.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;margin: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb6.png" width="588" height="206" /></a></p>
<p>&#160;</p>
<p>Une fois installée il suffit de lancer les commandes suivantes pour :</p>
<ul>
<li>Extraire dans un fichier PEM la clé privée et le convertir dans un format compréhensible pour SQL Server (fichier pvk)</li>
</ul>
<p><div class="codecolorer-container dos default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><div class="dos codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openssl.exe pkcs12 –<a href="http://www.ss64.com/nt/in.html"><span style="color: #00b100; font-weight: bold;">in</span></a> cert_ssl.pfx –nocerts –nodes –out cert_ssl_pvk.pem<br />
openssl.exe rsa –<a href="http://www.ss64.com/nt/in.html"><span style="color: #00b100; font-weight: bold;">in</span></a> cert_ssl_pvk.pem –outform PVK –pvk-strong –out cert_ssl.pvk</div></div>
</p>
<p>&#160;</p>
<ul>
<li>Extraire dans un fichier PEM&#160; le certificat et le convertir dans un format compréhensible pour SQL Server (fichier cer)</li>
</ul>
<p><div class="codecolorer-container dos default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><div class="dos codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openssl.exe pkcs12 –<a href="http://www.ss64.com/nt/in.html"><span style="color: #00b100; font-weight: bold;">in</span></a> cert_ssl.pfx –nokeys –out cert_ssl_cer.pem<br />
openssl.exe x509 –outform DER –<a href="http://www.ss64.com/nt/in.html"><span style="color: #00b100; font-weight: bold;">in</span></a> cert_ssl_cer.pem –out cert_ssl.cer</div></div>
</p>
<p>&#160;</p>
<p>Ce qui nous donne les fichiers suivants :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image7.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb7.png" width="575" height="113" /></a></p>
<p>&#160;</p>
<p>Il suffit ensuite de créer le certificat correspondant dans SQL Server dans le contexte de la base master avec le certificat et la clé publique (.cer) et la clé privée correspondante (.pvk) :</p>
<p>,</p>
<p><div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">CREATE</span> CERTIFICATE TDE_CERT_2<br />
<span style="color: #993333; font-weight: bold;">FROM</span> FILE <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'C:<span style="color: #000099; font-weight: bold;">\P</span>rogram Files<span style="color: #000099; font-weight: bold;">\M</span>icrosoft SQL Server<span style="color: #000099; font-weight: bold;">\M</span>SSQL10_50.MSSQLSERVER<span style="color: #000099; font-weight: bold;">\M</span>SSQL<span style="color: #000099; font-weight: bold;">\B</span>ackup<span style="color: #000099; font-weight: bold;">\c</span>ert_ssl.cer'</span><br />
<span style="color: #993333; font-weight: bold;">WITH</span> PRIVATE <span style="color: #993333; font-weight: bold;">KEY</span><br />
<span style="color: #66cc66;">&#40;</span><br />
&nbsp;FILE <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'C:<span style="color: #000099; font-weight: bold;">\P</span>rogram Files<span style="color: #000099; font-weight: bold;">\M</span>icrosoft SQL Server<span style="color: #000099; font-weight: bold;">\M</span>SSQL10_50.MSSQLSERVER<span style="color: #000099; font-weight: bold;">\M</span>SSQL<span style="color: #000099; font-weight: bold;">\B</span>ackup<span style="color: #000099; font-weight: bold;">\c</span>ert_ssl.pvk'</span><span style="color: #66cc66;">,</span><br />
&nbsp;DECRYPTION <span style="color: #993333; font-weight: bold;">BY</span> PASSWORD <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'P@$$w0rd'</span><br />
<span style="color: #66cc66;">&#41;</span>;</div></div>
</p>
<p>&#160;</p>
<p>Vérification de la création correcte de notre certificat à l&rsquo;aide de la vue système<em><strong> sys.certificates</strong></em> :</p>
<p>&#160;</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image8.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb8.png" width="983" height="185" /></a></p>
<p>&#160;</p>
<p>Bien entendu j&rsquo;avais déjà créé la clé de service master (SERVICE MASTER KEY) sur le serveur SQL. C&rsquo;est donc en toute logique que la clé privée du certificat que je viens de créer soit chiffrée par la clé master ici.&#160; Il ne reste ici plus qu&rsquo;à créer la clé de chiffrement de la base de données qui sera elle même chiffrée par notre certificat.</p>
<p>Bon chiffrement !</p>
<p>David BARBARIN (Mikedavem)    <br />MVP SQL Server</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
