Automate LetsEncrypt Certificate Renewal using Internet Information Services (IIS).

For those of you who have been living under a rock for the last couple years, Lets Encrypt is a brilliant initiative to provide publicly trusted SSL certificates for free. https://letsencrypt.org/ The one downside about using LetsEncrypt is that the certificates are only valid for 3 months. To overcome this, some automation is required. After fumbling around with different methods I came up with this simple configuration and script to achieve this goal. Before we begin there are some prerequisites we need to ensure are in place. 1. This tutorial expects that you understand how to configure websites and virtual...

Continue reading...

Send emails via Office 365 using the Microsoft Graph API using HTTP/REST

I have been working a lot lately on existing and new application projects that require emails to be sent via Microsoft Office 365. Traditionally this would be done using the System.Net.Mail class library over the SMTP protocol. Something like this… I see an increasing amount of limitations with this approach. Here are some of those limitations: SMTP ports closed my endpoint security products SMTP ports blocked by border network equipment Microsoft frequently changing encryption and authentication requirements Public IP address, service account and credential issues In short, a simpler approach was required and Microsoft have provided this approach via the...

Continue reading...

Cloning Azure / Azure Stack Virtual Machines.

Hello. In this post I will show you how to snapshot and clone an existing Azure or Azure Stack virtual machine in a few easy steps. There are many reasons for taking snapshots. As a precaution before an update or change or to make clones of an existing virtual machine. Also there is a big difference between a snapshot in Azure / Azure Stack and an image in Azure / Azure Stack. An image expects to be sysprep’d (generalized) where a snapshot is an exact point in time. Just wanted to take this opportunity to explain the difference. For this...

Continue reading...