<?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>azure function apps Archives - Apostolidis Cloud Corner</title>
	<atom:link href="https://www.cloudcorner.gr/tag/azure-function-apps/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.cloudcorner.gr/tag/azure-function-apps/</link>
	<description>Remarks from a Cloud Architect encounters</description>
	<lastBuildDate>Fri, 12 Oct 2018 09:41:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://www.cloudcorner.gr/wp-content/uploads/2021/04/cropped-cloudcorner2-32x32.png</url>
	<title>azure function apps Archives - Apostolidis Cloud Corner</title>
	<link>https://www.cloudcorner.gr/tag/azure-function-apps/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Serverless Computing &#124; Check your expired public certificates</title>
		<link>https://www.cloudcorner.gr/microsoft/azure/serverless-computing-check-your-expired-public-certificates/</link>
					<comments>https://www.cloudcorner.gr/microsoft/azure/serverless-computing-check-your-expired-public-certificates/#respond</comments>
		
		<dc:creator><![CDATA[Pantelis Apostolidis]]></dc:creator>
		<pubDate>Fri, 12 Oct 2018 09:41:29 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[azure function apps]]></category>
		<category><![CDATA[azurerm]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[serverless]]></category>
		<guid isPermaLink="false">https://www.e-apostolidis.gr/?p=2220</guid>

					<description><![CDATA[<p>Serverless Computing &#124; Check your expired public certificates Check for expired public certificates serverless, using an Azure Function App. Magically</p>
<p>The post <a href="https://www.cloudcorner.gr/microsoft/azure/serverless-computing-check-your-expired-public-certificates/">Serverless Computing | Check your expired public certificates</a> appeared first on <a href="https://www.cloudcorner.gr">Apostolidis Cloud Corner</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 style="text-align: justify;">Serverless Computing | Check your expired public certificates</h1>
<p style="text-align: justify;">Check for expired public certificates serverless, using an Azure Function App. Magically run the required PowerShell script directly at the Portal without deploying VMs or App Services. At this post I combine Azure Function Apps, with a PowerShell script to check the certificate expirations and the Send-MailMessage PowerShell function for sending emails directly from the PowerShell script.</p>
<h2 style="text-align: justify;">Setup the Azure Function App</h2>
<p style="text-align: justify;">At the Azure Portal, create a new Function App. Select Consumption Plan and .NET Runtime Stack</p>
<p id="MXzlFhG" style="text-align: justify;"><img fetchpriority="high" decoding="async" class="alignnone wp-image-2226 size-full" src="https://www.e-apostolidis.gr/wp-content/uploads/2018/10/img_5bbfa628f28d7.png" alt="Azure Function App" width="565" height="798" srcset="https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa628f28d7.png 565w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa628f28d7-212x300.png 212w" sizes="(max-width: 565px) 100vw, 565px" /></p>
<p style="text-align: justify;">Once the Function App is created, we need to enable PowerShell language support. To do so, open it, select the Function App and at the Platform features tab, open the Application Settings</p>
<p id="OhAViFR" style="text-align: justify;"><img decoding="async" class="alignnone wp-image-2228 size-full" src="https://www.e-apostolidis.gr/wp-content/uploads/2018/10/img_5bbfa72059c9c.png" alt="Azure Function App" width="758" height="371" srcset="https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa72059c9c.png 758w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa72059c9c-300x147.png 300w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa72059c9c-600x294.png 600w" sizes="(max-width: 758px) 100vw, 758px" /></p>
<p style="text-align: justify;">Change the FUNCTIONS_EXTENSION_VERSION to ~1 and delete the FUNCTIONS_WORKER_RUNTIME line</p>
<p style="text-align: justify;">Before:</p>
<p id="xEnrOsO" style="text-align: justify;"><img decoding="async" class="alignnone wp-image-2230 size-full" src="https://www.e-apostolidis.gr/wp-content/uploads/2018/10/img_5bbfa7f11745d.png" alt="Azure Function App" width="715" height="296" srcset="https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa7f11745d.png 715w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa7f11745d-300x124.png 300w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa7f11745d-600x248.png 600w" sizes="(max-width: 715px) 100vw, 715px" /></p>
<p style="text-align: justify;">After:</p>
<p id="SIlnSos" style="text-align: justify;"><img loading="lazy" decoding="async" class="alignnone wp-image-2231 size-full" src="https://www.e-apostolidis.gr/wp-content/uploads/2018/10/img_5bbfa85190469.png" alt="Azure Function App" width="746" height="301" srcset="https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa85190469.png 746w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa85190469-300x121.png 300w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa85190469-600x242.png 600w" sizes="auto, (max-width: 746px) 100vw, 746px" /></p>
<h2 style="text-align: justify;">Create the Function</h2>
<p style="text-align: justify;">Once you click Save, go back to the Function App, select the &#8220;Functions&#8221; and press &#8220;New function&#8221;</p>
<p id="hCPzlED" style="text-align: justify;"><img loading="lazy" decoding="async" class="alignnone wp-image-2232 size-full" src="https://www.e-apostolidis.gr/wp-content/uploads/2018/10/img_5bbfa883c7ab5.png" alt="Azure Function App" width="798" height="361" srcset="https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa883c7ab5.png 798w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa883c7ab5-300x136.png 300w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa883c7ab5-768x347.png 768w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa883c7ab5-600x271.png 600w" sizes="auto, (max-width: 798px) 100vw, 798px" /></p>
<p style="text-align: justify;">If we change the application settings correctly, the &#8220;Experimental Language Support&#8221; option will appear. Enable it and the templates will be able to support PowerShell (And more languages). To get started click the &#8220;Time trigger&#8221; template.</p>
<p id="FMRGdTd" style="text-align: justify;"><img loading="lazy" decoding="async" class="alignnone wp-image-2233 size-full" src="https://www.e-apostolidis.gr/wp-content/uploads/2018/10/img_5bbfa8d95fe43.png" alt="Azure Function App" width="825" height="314" srcset="https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa8d95fe43.png 825w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa8d95fe43-300x114.png 300w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa8d95fe43-768x292.png 768w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa8d95fe43-600x228.png 600w" sizes="auto, (max-width: 825px) 100vw, 825px" /></p>
<p style="text-align: justify;">At the window, select &#8220;PowerShell&#8221; for language and set the schedule. &#8220;Enter a cron expression of the format &#8216;{second} {minute} {hour} {day} {month} {day of week}&#8217; to specify the schedule.&#8221;</p>
<p style="text-align: justify;">Entering 0 0 0 1 * * the function will run once per day</p>
<p id="igDGJif" style="text-align: justify;"><img loading="lazy" decoding="async" class="alignnone wp-image-2234 size-full" src="https://www.e-apostolidis.gr/wp-content/uploads/2018/10/img_5bbfa9c9bedcd.png" alt="Azure Function App" width="547" height="574" srcset="https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa9c9bedcd.png 547w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bbfa9c9bedcd-286x300.png 286w" sizes="auto, (max-width: 547px) 100vw, 547px" /></p>
<h2 style="text-align: justify;">Add the PowerShell script</h2>
<p style="text-align: justify;">Once the Function is created, you will be directed to the &#8220;Function Name&#8221; run.ps1 file. There we can run PowerShell scripts.</p>
<p id="RlvLXyc" style="text-align: justify;"><img loading="lazy" decoding="async" class="alignnone wp-image-2235 size-full" src="https://www.e-apostolidis.gr/wp-content/uploads/2018/10/img_5bc06384d99f4.png" alt="Azure Function App" width="842" height="505" srcset="https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bc06384d99f4.png 842w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bc06384d99f4-300x180.png 300w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bc06384d99f4-768x461.png 768w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bc06384d99f4-600x360.png 600w" sizes="auto, (max-width: 842px) 100vw, 842px" /></p>
<p style="text-align: justify;">Below is the script, change the required variables to fit your needs and paste it to the Function run.ps1 file. The variables that you need to change is:</p>
<p style="text-align: justify;">$WebsiteURLs | This is the list, comma separated, of the URLs you want to check for certificate expiration<br />
$From | The email address of the Sender<br />
$To | The email address of the Recipient<br />
$Cc | The email address of the CC Recipient<br />
$Subject | The subject of the email<br />
$SMTPServer | The email server you will use to send the emails. You can Use the SendGrid service from Azure that currenlty provides 25000 email per month for free. More details here: <a href="http://guidestomicrosoft.com/2016/02/17/configure-a-smtp-server-in-azure/">https://sendgrid.com/docs/API_Reference/SMTP_API/getting_started_smtp.html </a><br />
$SMTPPort | The port that the SMTP service requires<br />
$username | The username to authenticate to the SMTP Service<br />
$password = ConvertTo-SecureString &#8220;here you need to add the password in plain text&#8221; -AsPlainText -Force</p>
<pre class="lang:ps decode:true">$WebsiteURLs= @("e-apostolidis.gr","azureheads.gr")
$WebsitePort=443
$Threshold=120
$Severe=30
$ID=0

$body +=  "&lt;html&gt;&lt;body&gt;&lt;br&gt;"
$body +=  "&lt;font color =""darkblue""&gt;"
$body += "#	Website_URL:	Current Certificate:	Expiration Date:	Days Remaining:	Errors:"
foreach ($WebsiteURL in $WebsiteURLs){
$CommonName=$WebsiteURL
$ID+=1
Try{
$Conn = New-Object System.Net.Sockets.TcpClient($WebsiteURL,$WebsitePort) 
Try {
$Stream = New-Object System.Net.Security.SslStream($Conn.GetStream(),$false, {
param($sender, $certificate, $chain, $sslPolicyErrors) 
return $true
})
$Stream.AuthenticateAsClient($CommonName) 

$Cert = $Stream.Get_RemoteCertificate()
$CN=(($cert.Subject -split "=")[1] -split ",")[0]
$ValidTo = [datetime]::Parse($Cert.GetExpirationDatestring())

$ValidDays = $($ValidTo - [datetime]::Now).Days
if ($ValidDays -lt $Threshold) {
$fontcolor +=  "&lt;font color =darkgreen&gt;"
} 
if ($ValidDays -lt $Severe) {
$fontcolor +=  "&lt;font color =darkred&gt;"
}
$body += "&lt;br /&gt;"
$body += $fontcolor
$body += "$ID	$WebsiteURL	$CN	$ValidTo	$ValidDays"
}
Catch { Throw $_ }
Finally { $Conn.close() }
}
Catch {
$body += "&lt;br /&gt;"
$body +="&lt;font color=red&gt; gest &lt;/font&gt;"
$body += " $ID	$WebsiteURL"
$body +=  "&lt;/body&gt;&lt;/html&gt;"
}

}

$From = "alias@domain.gr"
$To = "alias@domain.gr"
$Cc = "alias@domain.gr"
$Subject = "check the certificates"

$SMTPServer = "mail.mailserver.gr"
$SMTPPort = "587"


$username = "username"
$password = ConvertTo-SecureString "password" -AsPlainText -Force
$mycred = New-Object System.Management.Automation.PSCredential($username, $password)
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { return $true }
Send-MailMessage -From $From -to $To -Cc $Cc -Subject $Subject -SmtpServer $SMTPServer -UseSSL -port $SMTPPort -Credential ($mycred) -Body $body -BodyAsHtml</pre>
<p style="text-align: justify;">Press SAve &amp; Run and you are ready. Now on, once per day the script will run and it will sent an email with the certificates. Something like this:</p>
<p id="fYgDHmV" style="text-align: justify;"><img loading="lazy" decoding="async" class="alignnone wp-image-2236 size-full" src="https://www.e-apostolidis.gr/wp-content/uploads/2018/10/img_5bc0649bdf4ce.png" alt="Azure Function App" width="637" height="229" srcset="https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bc0649bdf4ce.png 637w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bc0649bdf4ce-300x108.png 300w, https://www.cloudcorner.gr/wp-content/uploads/2018/10/img_5bc0649bdf4ce-600x216.png 600w" sizes="auto, (max-width: 637px) 100vw, 637px" /></p>
<p style="text-align: justify;">Feel free to play with the colors on the script. I have added Dark Green for the valid certificates and Red for those that is about to expire.</p>
<h2 style="text-align: justify;">Credits</h2>
<p style="text-align: justify;">Use this line to ignore the certificate check on the email server when sending the email</p>
<pre class="prettyprint prettyprinted"><span class="pun">[</span><span class="typ">System</span><span class="pun">.</span><span class="typ">Net</span><span class="pun">.</span><span class="typ">ServicePointManager</span><span class="pun">]::</span><span class="typ">ServerCertificateValidationCallback</span> <span class="pun">=</span> <span class="pun">{</span> <span class="kwd">return</span><span class="pln"> $true </span><span class="pun">}</span></pre>
<p style="text-align: justify;"><a href="https://social.technet.microsoft.com/Forums/windows/en-US/d9e9af2b-3bb9-4cb4-8046-dd0a092bc456/send-email-by-powershell?forum=winserverpowershell">https://social.technet.microsoft.com/Forums/windows/en-US/d9e9af2b-3bb9-4cb4-8046-dd0a092bc456/send-email-by-powershell?forum=winserverpowershell</a></p>
<p style="text-align: justify;">The basic script for checking for certificate revocation:</p>
<p style="text-align: justify;"><a href="https://isc.sans.edu/forums/diary/Assessing+Remote+Certificates+with+Powershell/20645/">https://isc.sans.edu/forums/diary/Assessing+Remote+Certificates+with+Powershell/20645/</a></p>
<p style="text-align: justify;">At his blog is the idea for sending emails with powershell with html:</p>
<p style="text-align: justify;"><a href="http://www.techtrek.io/send-automated-email-with-powershell/">http://www.techtrek.io/send-automated-email-with-powershell/</a></p>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img loading="lazy" decoding="async" src="https://www.e-apostolidis.gr/wp-content/uploads/2019/05/mvpsummit2019.jpg" width="100"  height="100" alt="Pantelis Apostolidis" itemprop="image"></div><div class="saboxplugin-authorname"><a href="https://www.cloudcorner.gr/author/admin/" class="vcard author" rel="author"><span class="fn">Pantelis Apostolidis</span></a></div><div class="saboxplugin-desc"><div itemprop="description"><p>Pantelis Apostolidis is a Sr. Specialist, Azure at Microsoft and a former Microsoft Azure MVP. For the last 20 years, Pantelis has been involved to major cloud projects in Greece and abroad, helping companies to adopt and deploy cloud technologies, driving business value. He is entitled to a lot of Microsoft Expert Certifications, demonstrating his proven experience in delivering high quality solutions. He is an author, blogger and he is acting as a spokesperson for conferences, workshops and webinars. He is also an active member of several communities as a moderator in azureheads.gr and autoexec.gr. Follow him on Twitter @papostolidis.</p>
</div></div><div class="saboxplugin-web "><a href="https://www.cloudcorner.gr" target="_self" >www.cloudcorner.gr</a></div><div class="clearfix"></div><div class="saboxplugin-socials "><a title="Facebook" target="_blank" href="https://www.facebook.com/pantelis.apostolidis" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-facebook" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 264 512"><path fill="currentColor" d="M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"></path></svg></span></a><a title="Linkedin" target="_blank" href="https://www.linkedin.com/in/papostolidis/" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-linkedin" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M100.3 480H7.4V180.9h92.9V480zM53.8 140.1C24.1 140.1 0 115.5 0 85.8 0 56.1 24.1 32 53.8 32c29.7 0 53.8 24.1 53.8 53.8 0 29.7-24.1 54.3-53.8 54.3zM448 480h-92.7V334.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V480h-92.8V180.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V480z"></path></svg></span></a><a title="Instagram" target="_blank" href="https://www.instagram.com/proximagr" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-instagram" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg></span></a><a title="Rss" target="_blank" href="https://wwwcloudcorner.gr/feed/rdf/" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-rss" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"></path></svg></span></a><a title="Twitter" target="_blank" href="https://twitter.com/papostolidis" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><path d="M26.37,26l-8.795-12.822l0.015,0.012L25.52,4h-2.65l-6.46,7.48L11.28,4H4.33l8.211,11.971L12.54,15.97L3.88,26h2.65 l7.182-8.322L19.42,26H26.37z M10.23,6l12.34,18h-2.1L8.12,6H10.23z" /></svg></span></a><a title="Github" target="_blank" href="https://github.com/proximagr" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-github" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg></span></a><a title="User email" target="_self" href="mailto:&#112;r&#111;&#120;imagr&#064;h&#111;&#116;&#109;ai&#108;.co&#109;" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-user_email" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg></span></a></div></div></div><p><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fwww.cloudcorner.gr%2Fmicrosoft%2Fazure%2Fserverless-computing-check-your-expired-public-certificates%2F&amp;linkname=Serverless%20Computing%20%7C%20Check%20your%20expired%20public%20certificates" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_print" href="https://www.addtoany.com/add_to/print?linkurl=https%3A%2F%2Fwww.cloudcorner.gr%2Fmicrosoft%2Fazure%2Fserverless-computing-check-your-expired-public-certificates%2F&amp;linkname=Serverless%20Computing%20%7C%20Check%20your%20expired%20public%20certificates" title="Print" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.cloudcorner.gr%2Fmicrosoft%2Fazure%2Fserverless-computing-check-your-expired-public-certificates%2F&#038;title=Serverless%20Computing%20%7C%20Check%20your%20expired%20public%20certificates" data-a2a-url="https://www.cloudcorner.gr/microsoft/azure/serverless-computing-check-your-expired-public-certificates/" data-a2a-title="Serverless Computing | Check your expired public certificates"><img src="https://static.addtoany.com/buttons/share_save_171_16.png" alt="Share"></a></p><p>The post <a href="https://www.cloudcorner.gr/microsoft/azure/serverless-computing-check-your-expired-public-certificates/">Serverless Computing | Check your expired public certificates</a> appeared first on <a href="https://www.cloudcorner.gr">Apostolidis Cloud Corner</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.cloudcorner.gr/microsoft/azure/serverless-computing-check-your-expired-public-certificates/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
