Web Niraj
  • Facebook
  • Flickr
  • Github
  • Linkedin
  • Twitter
  • YouTube
Online portfolio, code examples and developer blog
  • About
  • Contact
  • Portfolio
  • WordPress
Search the site...
  • Home
  • Blog
  • Wildcard SSL Certificates with Let’s Encrypt

Wildcard SSL Certificates with Let’s Encrypt

0

Earlier this month the popular free SSL service, Let’s Encrypt, started supporting Wildcard SSL certificates. This means you can now use a single certificate to support domain.com and secure.domain.com. The process to create a wildcard certificate is fairly easy, but required you to change your DNS settings. Let’s take a look at the process.

Installing Certbot

First, you need to install the latest version of certbot-auto (version 0.22.0 at time of writing). The easiest way to do this is:

Creating the Certificate

Once downloaded, you can use the command-line tool to manually create a wildcard certificate:

The certonly option means only the certificate will be generated, and no server changes will take place. The --manual flag is used to manually go though the verification process to issue the wildcard certificate.

Use the -d flags to set as many domains as you need in this certificate. In this example, we set two domains: domain.com and the wildcard *.domain.com.

The --server flag needs to be set with the URL (as above) so that the ACME v2 APIs are used in the creation process. ACME v1 APIs do not support wildcard certificates. If you don’t specify this URL, you will see an error like:

Wildcard domains are not supported: *.domain.com

Note: Once the ACME v2 APIs become the default for Certbot, the --server flag will no longer be required.

The Certbot will take you the setup process for the wildcard SSL. The process involves changing the DNS settings for your domain so Certbot can verify that you own the domain, and setting up a text file on your server as a second verification step. A screenshot of the process can be found below.

Completing Setup

At the end of the process, the SSL certificate and Key will be setup in the folder: /etc/letsencrypt/live/domain.com/. The path will depend on the domain(s) you’ve setup. See the “IMPORTANT NOTES” part of the output after the certificate has been generated to confirm the paths (as per screenshot above).

You can then update your server config to point to the certificates. For example, on Apache, you can do:

Renewing the Certificates

Certbot lets you automatically renew your certificates when they expire. Since Let’s Encrypt certificates are only valid for 90 days, it’s good to have Certbot renew the certificates for you. To renew the wildcard certificate, you can use the command:

The --apache flag tells Certbot that you are using the Apache HTTP server on your system. But since we’re using the certonly option, the command will only generate new certificates and not update the apache config.

If you have multiple domains that use Let’s Encrypt, you can renew them all at the same time using the sudo ./certbot-auto renew command-line.

Note: The --dry-run flag does not currently work with the renew option. This is expected to be fixed in the next release of Certbot (v0.23.0). See the bug report here.


If you have any questions or issues, let me know if the comments section below.

Command Line, HTTPS, Let's Encrypt, Linux, Security, Server, SSL

Leave a ReplyCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

StackExchange / StackOverflow

profile for Niraj Shah on Stack Exchange, a network of free, community-driven Q&A sites

Support Me

Buy Me a Coffee

PSN Profile

Tags

ACL Amazon Amazon Web Services Android Android 4.4 KitKat Android 5.0 Lollipop Apache Backup Bug Command Line Cordova cPanel / WHM Facebook Facebook Graph API Facebook PHP SDK 4.0 Facebook Social Plugins Fan Page Firewall Flash Gadget Geolocation Google Nexus 5 Hacking HTML5 iOS JavaScript jQuery Laravel 5 Linux NodeJS Parse PDF PHP Plugin Portfolio PS4 Review Security Server SSH SSL Sysadmin Tutorial WordPress WordPress Plugins
© 2011-2025 Niraj Shah
  • Blog
  • Portfolio
  • WordPress
  • About Me
  • Contact Me
  • Privacy Policy
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Privacy Policy