Free SSL Cert for DNN using Let's Encrypt

Free SSL Cert for DNN using Let's Encrypt

So you want to use the fairly new Let's Encrypt free SSL cert with your DNN website? Here are the steps to do that. It wasn't as easy as I thought it would be, but I'll save you the suffering.

Before we get started, this assumes you have access to the web server and IIS. This likely won't be of any help if you're using a shared hosting plan.

Step 1 - Preparing DNN


This was the first gotcha I encountered: During the command line setup and creation of the cert using Let's Encrypt Win Simple it has a step that after creating the cert it puts a verification file in your website directory (/.well-known/acme-challenge/file name). Well since that isn't a DNN page it causes issues with the DNN URL routing and throws a 404 error. So it's not able to verify the file, therefore you're stuck.


In order to get DNN to serve the verification file and not throw a 404, you've got 2 options:

Option 1 - Disable Advanced URL Management (AUM)

This is likely not the best solution as AUM gives you cool things like pretty URLs (instead of you'll have But if you don't care about that, this is the easiest solution.

Simply replace "Advanced" urlFormat in web.config with "humanfriendly" as shown below:

<friendlyUrl defaultProvider="DNNFriendlyUrl">  
        <clear />
        <add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="humanfriendly" />

Option 2 - Install URL Management Module

This is the preferred method, as it keeps your pretty URLs and gives you additional benefits. Though it is more involved.

  1. Download and install DNN URL Management module
  2. Add the module to your site per instructions. I added 2 "URL Management" pages, one under Admin and one under Host
  3. Add the module to each of those pages. Once added, it has 2 separate modules, one for admin (portal) and one for host. Delete the instance that doesn't belong
  4. On the page you created under the admin menu, go to the URL Management module and click on the "Regular Expressions" tab
  5. In the first setting called "Ignore URL Regular Expressions" add the following to the end, inside of the last parenthesis: |\.well-known
  6. Just to clarify, before that change the end of that string looked like "...txt$))", now it looks like "...txt$)|\.well-known)" without the quotes of course
  7. Now click "Update" on the bottom of the module
  8. You should be all set now. We'll verify that later once we setup the cert.

Step 2 - Setting up the Cert


If you're planning on redirecting your site so all variations go to once place (i.e.,,, all point to then do this. Set up 2 bindings in IIS for your site. One for and one for We'll add in the https versions later.

Cert Installation

For this part, I followed this great guide by Rick Strahl and selected his first approach using Let's Encrypt Win Simple.

Here are the basic steps:

  1. Install Win Simple on your web server
  2. Using the command line cd to the directory for Win Simple. For me this was C:\utilities\LetsEncryptWinSimple
  3. After cd'ing to that directory, simply run LetsEncrypt in that directory
  4. Now you should see a list of the available IIS site bindings listed in the command window. Select the one for the site you're setting up (If you followed the prereq above, you should see 2 listings, one with and one without www. Pick either one and we'll run this process again for the additional binding).
  5. This is the step where we'll find out if our DNN setup was done properly. If all is well you'll be prompted with "Do you want to specify the user the task will run as?" question. If you get a red error about not being able to access the answer file ( then DNN is still having issues serving that file. Copy the URL to that file and attempt to open it in a browser. If you're getting a 404 then you've got work to do.
    • verify that folder has proper access permission
    • verify the regex from step 1, option 2 was done properly

* If you've got multiple bindings for the same site (www and non-www) then run steps 2-5 again and select the binding that you didn't pick the first time *

If you got through that will no errors, then you're ready for the next step.

Add HTTPS Bindings

The process above should have automatically added bindings for https. Verify that you now have 4 total bindings and that the https bindings use the proper SSL cert (you should have 2 certs, one with and one without www).

Setting Up Automatic Renewals

The certification renewal task is initially configured to "run only when user is logged on". Here's the easy workaround for that.

While you can just leave it to run under the account the cert was setup with. I chose to create a service account to have it run under.

Step 3 - URL Redirects

You should now be able to navigate to your site and see that's it's using https. However, as it currently stands, it accepts,,, and Let's tidy that up.

Add the following rewrite rules in the <system.webServer> tags in your web.config file:

            <rule name="Redirect non-www to www" patternSyntax="Wildcard" stopProcessing="true">
                <match url="*" />
                    <add input="{HTTP_HOST}" pattern="" />
                <action type="Redirect" url="{R:0}" />
                <rule name="http to https" stopProcessing="true">
                    <match url="(.*)" />
                        <add input="{HTTPS}" pattern="^OFF$" />
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />

Note: Make sure to replace "" above with your actual domain.

There you have it, you should now be all set with a free SSL cert for your DNN site.

On Page & Off Page SEO Checklist

On Page & Off Page SEO Checklist

SEO is an ever changing animal. This checklist was compiled based on what the current perceived best practices are as of 1/28/2016

Downloadable PDF Version


  1. Short SEO Friendly URLs ("-" for spaces, reads easy, keyword rich)
  2. Start Title with Keyword - your title is the most important on-page SEO factor. The closer the keyword is to the beginning of the title the more weight it has.
  3. Add Multimedia - Images, videos, and diagrams can reduce bounce rate and increase time on site.
  4. Use Outbound Links - Outbound links to related pages is a relevancy signal that helps Google figure out your page's topic. Usually 2-4 outbound links per 1000 words. Keep in mind sites you link to reflect on you.
  5. Keywords in First 100 Words - Your keyword should appear in first 100-150 words of article.
  6. Wrap Title in H1 Tag - Your page title should be in an H1 tag.
  7. Page Load Speed - It shouldn't take more than 4 seconds to load your page. There are several tools to check site speed. Here's one: GTMetrix
  8. Add modifiers to Your Title - Adding modifiers like "2015", "Best", "Guide", "How To", etc. help long tail ranking.
  9. Use Social Sharing Tools - While it doesn't play a direct role in your rank. It does help get more eyes on your content.
  10. Longer Content is Better - Content is king. Aim for at least 2000 words when targeting keywords.
  11. Sprinkle in Latent Semantic Indexing (LSI) Keywords - LSI keywords are synonyms Google uses to determine page relevancy. You can find these by searching for a keyword, then scroll to bottom of SERP and see "Searches related to" area.
  12. Internal Linking - When appropriate, add keyword rich internal links to other content on your site.
  13. Image Optimization - Make sure the file name includes your keyword and also include keyword in Alt text.


  1. Off-Page SEO Checklist - several topics discussed in length.
  2. Keyword Research - This ties into on-page, but here is a good resource keyword research
  3. Link Building - many of these were mentioned in my SEO tools list
    • Find Bloggers - get reviews on your stuff
    • Find potential outreach blog opportunities by searching for relevant topics on Alltop
    • Find proven infographic topics on by searching for a relevant topic, and sorting by number of views.
Best Free SEO Tools

Best Free SEO Tools

Whether you're developing a new site, or enhancing an existing site, these are some of the best free SEO tools I've found.


  1. Google Analytics - If you're exposing your site externally, this is a must have.

Webmaster Tools

  1. Google Webmaster Tools - This is another required tool if site is external.
  2. Bing Webmaster Tools - Microsoft's version of Google webmaster tools. It's optional, but recommended.

Keyword Tools

  1. Google Adwords Keyword Tool - Starting point for keyword researc
  2. Google Trends - great for checking query volumes
  3. Ubersuggest - Keyword research ideas.


  1. SEOBook - Has booth free and paid tools
  2. SEO Site Tools - Chrome plugin
  3. MozBar - SEO toolbar for chrome/firefox
  4. SEO Quake - SEO toolbar for Chrome. Obtains information about any site. Helps with keyword competition determination.


  1. Builtwith - Shows behind the scenes info for competitor websites
  2. Xenu - Desktop app for finding broken links
  3. Browseo - View your site how a search engine does
  4. Internet Marketing Ninjas On-Page Optimization Analysis - on-page analysis tool to check internal/external links
  5. XML Sitemap Generator - create your XML sitemap
  6. Rich Snippets Testing Tool - See how Google views your structured data markup.
  7. Duplicate Content Checker
  8. Majestic SEO - Link explorer tool.
  9. Open Site Explorer - Link explorer tool.
  10. Ahrefs - Link analysis tool. Track keyword rankings for your site.
  11. Screaming Frog SEO Spider Tool - Desktop app that spiders websites links, images, css, scrips from an SEO perspective.
  12. Alltop - Good for finding topics for potential outreach opportunities (link building).
  13. - Get proven infographics for your topic.

SERP Tools

  1. SEM Rush - View of the competitive SERP landscape.
  2. WhatsMySerp - Keyword rank checker.

Content Strategy

  1. Content Strategy Generator - Helps you plan content strategy intelligently using keyword research
  2. Infographic Generator - Free tool for creating infographics using templates.
  3. Piktochart - Free infographic generator.

Securing Your IIS Server With Forward Secrecy

Security is a big deal nowadays. Let's be honest, it should have always been a big deal. With the plethora of data breaches in the news, people are starting to take notice and secure things properly.

The first step in making sure your website is secured properly is securing the web server it's hosted on. Here are steps to do that if your running your own IIS web server and are planning to use an SSL cert. This should work for IIS 7.5/8.0/8.5.

Testing Your Server

  1. Run your server through this awesome [SSL Server Test] ( provided by Qualys. You can enter a URL of a site on the server, or an IP address. Make sure to check the "do not show results" box if you don't want the world to see your results (I recommend this, at least on the first attempt so you don't expose yourself as vulnerable).
    SSL Server Test

  2. Review your results.
    SSL Server Test Results

    The goal is to to get an A or higher. Don't worry if you don't hit that on the first attempt. The SSL test will provide plenty of feedback on what needs to be fixed.

Securing Your Server

If your test results didn't come back as favorable as you'd hoped, here are a few options on how to fix those issues.

Caution: All of these options could potentially cause problems if done incorrectly. Proceed at your own risk!

  1. Google the issues that come up and manually edit the registry (not recommmended). That doesn't sound like much fun...let's have a look at some other options.
  2. Download and run IIS Crypto. This free tool allows you to enable/disable security settings with a few clicks using a GUI.
  3. Use this powershell script by Alexander Hass to set the security settings to the current best practices.