Skip to main content
a project of the Electronic Frontier Foundation

Certbot Instructions

What's your HTTP website running on?

My HTTP website is running on

Web Hosting Product on Web Hosting Service

default
wildcard

To use Certbot, you'll need...

A laptop
comfort with the
command line
Close button

A command line is a way of interacting with a computer by typing text-based commands to it and receiving text-based replies. Certbot is run from a command-line interface, usually on a Unix-like server. In order to use Certbot for most purposes, you’ll need to be able to install and run it on the command line of your web server, which is usually accessed over SSH.

A command line is a way of interacting with a computer by typing text-based commands to it and recei...

command line
Command Line

A command line is a way of interacting with a computer by typing text-based commands to it and receiving text-based replies. Certbot is run from a command-line interface, usually on a Unix-like server. In order to use Certbot for most purposes, you’ll need to be able to install and run it on the command line of your web server, which is usually accessed over SSH.

Web browser showing an HTTP site
...and an
HTTP website
Close button

HTTP (Hypertext Transfer Protocol) is the traditional, but insecure, method for web browsers to request the content of web pages and other online resources from web servers. It is an Internet standard and normally used with TCP port 80. Almost all websites in the world support HTTP, but websites that have been configured with Certbot or some other method of setting up HTTPS may automatically redirect users from the HTTP version of the site to the HTTPS version.

HTTP (Hypertext Transfer Protocol) is the traditional, but insecure, method for web browsers to requ...

HTTP website
HTTP

HTTP (Hypertext Transfer Protocol) is the traditional, but insecure, method for web browsers to request the content of web pages and other online resources from web servers. It is an Internet standard and normally used with TCP port 80. Almost all websites in the world support HTTP, but websites that have been configured with Certbot or some other method of setting up HTTPS may automatically redirect users from the HTTP version of the site to the HTTPS version.


that is
already online
Close button

Certbot is usually meant to be used to switch an existing HTTP site to work in HTTPS (and, afterward, to continue renewing the site’s HTTPS certificates whenever necessary). Some Certbot documentation assumes or recommends that you have a working web site that can already be accessed using HTTP on port 80. That means, for example, that if you use a web browser to go to your domain using http://, your web server answers and some kind of content comes up (even if it’s just a default welcome page rather than the final version of your site). Some methods of using Certbot have this as a prerequisite, so you’ll have a smoother experience if you already have a site set up with HTTP. (If your site can’t be accessed this way as a matter of policy, you’ll probably need to use DNS validation in order to get a certificate with Certbot.)

Certbot is usually meant to be used to switch an existing HTTP site to work in HTTPS (and, afterward...

already online
Website That’s Already Online

Certbot is usually meant to be used to switch an existing HTTP site to work in HTTPS (and, afterward, to continue renewing the site’s HTTPS certificates whenever necessary). Some Certbot documentation assumes or recommends that you have a working web site that can already be accessed using HTTP on port 80. That means, for example, that if you use a web browser to go to your domain using http://, your web server answers and some kind of content comes up (even if it’s just a default welcome page rather than the final version of your site). Some methods of using Certbot have this as a prerequisite, so you’ll have a smoother experience if you already have a site set up with HTTP. (If your site can’t be accessed this way as a matter of policy, you’ll probably need to use DNS validation in order to get a certificate with Certbot.)


with an open
port 80
Close button

Different Internet services are distinguished by using different TCP port numbers. Unencrypted HTTP normally uses TCP port 80, while encrypted HTTPS normally uses TCP port 443. To use certbot --webroot, certbot --apache, or certbot --nginx, you should have an existing HTTP website that’s already online hosted on the server where you’re going to use Certbot. This site should be available to the rest of the Internet on port 80. To use certbot --standalone, you don’t need an existing site, but you have to make sure connections to port 80 on your server are not blocked by a firewall, including a firewall that may be run by your Internet service provider or web hosting provider. Please check with your ISP or hosting provider if you’re not sure. (Using DNS validation does not require Let’s Encrypt to make any inbound connection to your server, so with this method in particular it’s not necessary to have an existing HTTP website or the ability to receive connections on port 80.)

Different Internet services are distinguished by using different TCP port numbers. Unencrypted HTTP ...

port 80
Port 80

Different Internet services are distinguished by using different TCP port numbers. Unencrypted HTTP normally uses TCP port 80, while encrypted HTTPS normally uses TCP port 443. To use certbot --webroot, certbot --apache, or certbot --nginx, you should have an existing HTTP website that’s already online hosted on the server where you’re going to use Certbot. This site should be available to the rest of the Internet on port 80. To use certbot --standalone, you don’t need an existing site, but you have to make sure connections to port 80 on your server are not blocked by a firewall, including a firewall that may be run by your Internet service provider or web hosting provider. Please check with your ISP or hosting provider if you’re not sure. (Using DNS validation does not require Let’s Encrypt to make any inbound connection to your server, so with this method in particular it’s not necessary to have an existing HTTP website or the ability to receive connections on port 80.)

A server
...which is hosted on a
server
Close button

A server is a computer on the Internet that provides a service, like a web site or an email service. Most web site owners pay a hosting provider for the use of a server located in a data center and administered over the Internet. This might be a physical dedicated server, a virtual private server (VPS), or a shared server. Other servers provide other parts of the Internet infrastructure, such as DNS servers.

A server is a computer on the Internet that provides a service, like a web site or an email service....

server
Server

A server is a computer on the Internet that provides a service, like a web site or an email service. Most web site owners pay a hosting provider for the use of a server located in a data center and administered over the Internet. This might be a physical dedicated server, a virtual private server (VPS), or a shared server. Other servers provide other parts of the Internet infrastructure, such as DNS servers.


which you can access via
ssh
Close button
SSH

SSH (which stands for “secure shell”) is a technology for connecting to a remote server and accessing a command line on that server, often in order to administer it. The administrator of a server can grant SSH access to others, and can also use SSH access directly in order to administer the server remotely. SSH is usually used to access servers running Unix-like operating systems, but your own computer doesn’t have to be running Unix in order to use SSH. You normally use SSH from your computer’s command line in a terminal by typing a command such as ssh username@example.com, especially if your own computer runs Linux or macOS. After logging in, you’ll have access to the server’s command line. If you use Windows on your computer, you might also use a dedicated SSH application such as PuTTY. Most Certbot users run Certbot from a command prompt on a remote server over SSH.

SSH (which stands for “secure shell”) is a technology for connecting to a remote server and accessin...

ssh
SSH

SSH (which stands for “secure shell”) is a technology for connecting to a remote server and accessing a command line on that server, often in order to administer it. The administrator of a server can grant SSH access to others, and can also use SSH access directly in order to administer the server remotely. SSH is usually used to access servers running Unix-like operating systems, but your own computer doesn’t have to be running Unix in order to use SSH. You normally use SSH from your computer’s command line in a terminal by typing a command such as ssh username@example.com, especially if your own computer runs Linux or macOS. After logging in, you’ll have access to the server’s command line. If you use Windows on your computer, you might also use a dedicated SSH application such as PuTTY. Most Certbot users run Certbot from a command prompt on a remote server over SSH.


with the ability to
sudo
Close button

Sudo is the most common command on Unix-like operating systems to run a specific command as root (the system administrator). If you’re logged in to your server as a user other than root, you’ll likely need to put sudo before your Certbot commands so that they run as root (for example, sudo certbot instead of just certbot), especially if you’re using Certbot’s integration with a web server like Apache or Nginx. (The certbot-auto script automatically runs sudo if it’s necessary and you didn’t specify it.)

Sudo is the most common command on Unix-like operating systems to run a specific command as root (th...

sudo
sudo

Sudo is the most common command on Unix-like operating systems to run a specific command as root (the system administrator). If you’re logged in to your server as a user other than root, you’ll likely need to put sudo before your Certbot commands so that they run as root (for example, sudo certbot instead of just certbot), especially if you’re using Certbot’s integration with a web server like Apache or Nginx. (The certbot-auto script automatically runs sudo if it’s necessary and you didn’t specify it.)


optional if you want a
wildcard cert
Close button

A wildcard certificate is a certificate that includes one or more names starting with *.. Browsers will accept any label in place of the asterisk (*). For example, a certificate for *.example.com will be valid for www.example.com, mail.example.com, hello.example.com, and goodbye.example.com.

However, a wildcard certificate including only the name *.example.com will not be valid for example.com: the substituted label can not be empty. If you want the certificate to be valid for example.com, you also need to include example.com (i.e. without the *. part) on the certificate.

Additionally, the asterisk can only be substituted by a single label and not by multiple labels. For example, the name hello.goodbye.example.com will not be covered by a certificate including only the name *.example.com. It will be covered however, by *.goodbye.example.com. Note that a wildcard name can not contain multiple asterisks. For example, *.*.example.com is not valid.

A wildcard certificate is a certificate that includes one or more names starting with *.. Browsers w...

wildcard cert
Wildcard Certificate

A wildcard certificate is a certificate that includes one or more names starting with *.. Browsers will accept any label in place of the asterisk (*). For example, a certificate for *.example.com will be valid for www.example.com, mail.example.com, hello.example.com, and goodbye.example.com.

However, a wildcard certificate including only the name *.example.com will not be valid for example.com: the substituted label can not be empty. If you want the certificate to be valid for example.com, you also need to include example.com (i.e. without the *. part) on the certificate.

Additionally, the asterisk can only be substituted by a single label and not by multiple labels. For example, the name hello.goodbye.example.com will not be covered by a certificate including only the name *.example.com. It will be covered however, by *.goodbye.example.com. Note that a wildcard name can not contain multiple asterisks. For example, *.*.example.com is not valid.

:
DNS credentials
Close button

DNS credentials are a password or other kind of secret (such as an API key) that your DNS provider lets you use to change the contents of your DNS records. They are usually issued by your domain registrar (or by another DNS provider, if your DNS provider isn’t the same as your registrar). DNS credentials are a sensitive kind of secret because they can be used to take over your site completely. You should never share these credentials publicly or with an unauthorized person. It can be OK to provide a copy of them to Certbot to let it perform DNS validation automatically, since it runs locally on your machine.

DNS credentials are a password or other kind of secret (such as an API key) that your DNS provider l...

DNS credentials
DNS Credentials

DNS credentials are a password or other kind of secret (such as an API key) that your DNS provider lets you use to change the contents of your DNS records. They are usually issued by your domain registrar (or by another DNS provider, if your DNS provider isn’t the same as your registrar). DNS credentials are a sensitive kind of secret because they can be used to take over your site completely. You should never share these credentials publicly or with an unauthorized person. It can be OK to provide a copy of them to Certbot to let it perform DNS validation automatically, since it runs locally on your machine.

Don't have these requirements?

Not to worry! Some hosting providers automate the HTTPS process. See the full list of hosting providers , or find out more about how to set up your system.

    Look for your web hosting provider on this list.

    Are you looking for your web hosting provider, such as Squarespace, Github, or WordPress? You might already have HTTPS available and not need Certbot. Find your web hosting provider in our chart of hosting providers.

    If your hosting provider has full support for HTTPS: good news! You won’t have to do anything further.

    If your hosting provider has partial support for HTTPS: good news! You can follow along the linked tutorials for that individual web hosting provider, and get your website on HTTPS without needing Certbot.

    If your hosting provider does not support HTTPS: continue to the steps below.

    If your hosting provider does not support HTTPS, the following options are available:

    You can contact your web hosting provider: tell them you want a free HTTPS certificate through Let’s Encrypt.

    You’re probably not the only one using your web hosting provider service who wants HTTPS. You can request that your web hosting provider offer Let’s Encrypt HTTPS certificates as a free part of their hosting package. An effective way to make this ask is through email, their help desk system, or by contacting the web hosting provider through social media.

    You can switch to a different web hosting provider.

    Find a web hosting provider who offers full HTTPS support as part of their web hosting package by checking our list.

    You might be able to use Certbot.

    If you have
    SSH access
    Close button
    SSH
    SSH (which stands for “secure shell”) is a technology for connecting to a remote server and accessing a command line on that server, often in order to administer it. The administrator of a server can grant SSH access to others, and can also use SSH access directly in order to administer the server remotely. SSH is usually used to access servers running Unix-like operating systems, but your own computer doesn’t have to be running Unix in order to use SSH. You normally use SSH from your computer’s command line in a terminal by typing a command such as ssh username@example.com, especially if your own computer runs Linux or macOS. After logging in, you’ll have access to the server’s command line. If you use Windows on your computer, you might also use a dedicated SSH application such as PuTTY. Most Certbot users run Certbot from a command prompt on a remote server over SSH.
    SSH (which stands for “secure shell”) is a technology for connecting to a remote server and accessin...
    SSH access
    SSH SSH (which stands for “secure shell”) is a technology for connecting to a remote server and accessing a command line on that server, often in order to administer it. The administrator of a server can grant SSH access to others, and can also use SSH access directly in order to administer the server remotely. SSH is usually used to access servers running Unix-like operating systems, but your own computer doesn’t have to be running Unix in order to use SSH. You normally use SSH from your computer’s command line in a terminal by typing a command such as ssh username@example.com, especially if your own computer runs Linux or macOS. After logging in, you’ll have access to the server’s command line. If you use Windows on your computer, you might also use a dedicated SSH application such as PuTTY. Most Certbot users run Certbot from a command prompt on a remote server over SSH.
    to the server your website is hosted on, you might be able to use Certbot. You will need to know the
    software
    Close button
    Software is a set of instructions that teach a computer how to perform a particular task. Certbot is one software application that can be useful for web site administrators who want to set up HTTPS on their web sites. Certbot documentation will also expect you to know the names and versions of some other software that you use on your web server. For instance, the way to install Certbot is different on different operating systems, so you'll be asked the operating system software that your web server uses.
    Software is a set of instructions that teach a computer how to perform a particular task. Certbot i...
    software
    Software Software is a set of instructions that teach a computer how to perform a particular task. Certbot is one software application that can be useful for web site administrators who want to set up HTTPS on their web sites. Certbot documentation will also expect you to know the names and versions of some other software that you use on your web server. For instance, the way to install Certbot is different on different operating systems, so you'll be asked the operating system software that your web server uses.
    and
    system
    Close button
    The operating system is the core software running on a computer. The most common operating systems are Windows, macOS, and Linux. Linux is subdivided into “distributions” like Ubuntu, Debian, RedHat, and many more.
    The operating system is the core software running on a computer. The most common operating systems a...
    system
    Operating System The operating system is the core software running on a computer. The most common operating systems are Windows, macOS, and Linux. Linux is subdivided into “distributions” like Ubuntu, Debian, RedHat, and many more.
    your server is running on. After you confirm the software and system information, you can use the dropdown menus above to generate specific instructions for running Certbot on your server through the command line.

    Look for your web hosting provider on this list.

    Are you looking for your web hosting provider, such as Squarespace, Github, or WordPress? You might already have HTTPS available and not need Certbot. Find your web hosting provider in our chart of hosting providers.

    If your hosting provider has full support for HTTPS: good news! You won’t have to do anything further.

    If your hosting provider has partial support for HTTPS: good news! You can follow along the linked tutorials for that individual web hosting provider, and get your website on HTTPS without needing Certbot.

    If your hosting provider does not support HTTPS: continue to the steps below.

    If your hosting provider does not support HTTPS, the following options are available:

    You can contact your web hosting provider: tell them you want a free HTTPS certificate through Let’s Encrypt.

    You’re probably not the only one using your web hosting provider service who wants HTTPS. You can request that your web hosting provider offer Let’s Encrypt HTTPS certificates as a free part of their hosting package. An effective way to make this ask is through email, their help desk system, or by contacting the web hosting provider through social media.

    You can switch to a different web hosting provider.

    Find a web hosting provider who offers full HTTPS support as part of their web hosting package by checking our list.

    You might be able to use Certbot.

    If you have
    SSH access
    Close button
    SSH
    SSH (which stands for “secure shell”) is a technology for connecting to a remote server and accessing a command line on that server, often in order to administer it. The administrator of a server can grant SSH access to others, and can also use SSH access directly in order to administer the server remotely. SSH is usually used to access servers running Unix-like operating systems, but your own computer doesn’t have to be running Unix in order to use SSH. You normally use SSH from your computer’s command line in a terminal by typing a command such as ssh username@example.com, especially if your own computer runs Linux or macOS. After logging in, you’ll have access to the server’s command line. If you use Windows on your computer, you might also use a dedicated SSH application such as PuTTY. Most Certbot users run Certbot from a command prompt on a remote server over SSH.
    SSH (which stands for “secure shell”) is a technology for connecting to a remote server and accessin...
    SSH access
    SSH SSH (which stands for “secure shell”) is a technology for connecting to a remote server and accessing a command line on that server, often in order to administer it. The administrator of a server can grant SSH access to others, and can also use SSH access directly in order to administer the server remotely. SSH is usually used to access servers running Unix-like operating systems, but your own computer doesn’t have to be running Unix in order to use SSH. You normally use SSH from your computer’s command line in a terminal by typing a command such as ssh username@example.com, especially if your own computer runs Linux or macOS. After logging in, you’ll have access to the server’s command line. If you use Windows on your computer, you might also use a dedicated SSH application such as PuTTY. Most Certbot users run Certbot from a command prompt on a remote server over SSH.
    to the server your website is hosted on, you might be able to use Certbot. You will need to know the
    software
    Close button
    Software is a set of instructions that teach a computer how to perform a particular task. Certbot is one software application that can be useful for web site administrators who want to set up HTTPS on their web sites. Certbot documentation will also expect you to know the names and versions of some other software that you use on your web server. For instance, the way to install Certbot is different on different operating systems, so you'll be asked the operating system software that your web server uses.
    Software is a set of instructions that teach a computer how to perform a particular task. Certbot i...
    software
    Software Software is a set of instructions that teach a computer how to perform a particular task. Certbot is one software application that can be useful for web site administrators who want to set up HTTPS on their web sites. Certbot documentation will also expect you to know the names and versions of some other software that you use on your web server. For instance, the way to install Certbot is different on different operating systems, so you'll be asked the operating system software that your web server uses.
    and
    system
    Close button
    The operating system is the core software running on a computer. The most common operating systems are Windows, macOS, and Linux. Linux is subdivided into “distributions” like Ubuntu, Debian, RedHat, and many more.
    The operating system is the core software running on a computer. The most common operating systems a...
    system
    Operating System The operating system is the core software running on a computer. The most common operating systems are Windows, macOS, and Linux. Linux is subdivided into “distributions” like Ubuntu, Debian, RedHat, and many more.
    your server is running on. After you confirm the software and system information, you can use the dropdown menus above to generate specific instructions for running Certbot on your server through the command line.