Answers: <p>Now (July 2018), you should be able to use either</p>
  
  <pre><code>pip install certbot-dns-digitalocean
  </code></pre>
  
  <p>or</p>
  
  <pre><code>git clone https://github.com/certbot/certbot.git
  cd certbot/certbot-dns-digitalocean/
  python setup.py install
  </code></pre>
  
  <p>You may need <code>sudo</code> privileges for either.</p>
  
  <p>After installing you may not be able to see the plugin with <code>certbot plugins</code>, but you should be able to <code>certbot certonly --dns-digitalocean</code> just fine.</p>
  
Answers: CC BY-SA 4.0
Answers: 2018-07-16T22:52:48.347Z
Answers: Hang on. How did you install certbot then? I think my problem was that I installed certbot with `apt` and `certbot-dns-digitalocean` with `pip` and certbot wasn't able to find it.
Answers: mpen
Answers: CC BY-SA 4.0
Answers: 2018-07-17T16:34:59.590Z
Answers: Yep, and I installed it the same way you did. Maybe the way you installed `pip` is different? I `apt` installed python 2.7 and then `sudo easy_install pip` (may require an apt install of these: `python-setuptools python-dev build-essential`)
Answers: M. Davis
Answers: CC BY-SA 4.0
Answers: 2018-07-16T19:43:41.930Z
Answers: 2018-07-16T19:43:41.930Z
Answers: M. Davis
Answers: <p>For those who is using <strong><code>certbot</code></strong> distributed by OS distros <em>certbot plugins</em> can be installed by a package manager using provider's name, for example:</p>
  <p><strong>Debian/Ubuntu:</strong></p>
  <pre><code>apt-get install python3-certbot-dns-cloudflare
  apt-get install python3-certbot-dns-google
  apt-get install python3-certbot-dns-route53
  </code></pre>
  <p><strong>RHEL/CentOS/Rocky/AlmaLinux 8:</strong></p>
  <pre><code>dnf install python3-certbot-dns-cloudflare
  dnf install python3-certbot-dns-google
  dnf install python3-certbot-dns-route53
  </code></pre>
  <p><strong>RHEL/CentOS 7:</strong></p>
  <pre><code>yum install python2-certbot-dns-cloudflare
  yum install python2-certbot-dns-google
  yum install python2-certbot-dns-route53
  </code></pre>
  
Answers: CC BY-SA 4.0
Answers: 2021-06-18T17:09:35.480Z
Answers: 2021-06-18T17:09:35.480Z
Answers: Ilia Ross
Answers: <p>You have to use Docker to use dns plugins. From <a href="https://certbot.eff.org/docs/using.html#dns-plugins" rel="nofollow noreferrer">DNS Plugins</a>:</p>
  
  <blockquote>
    <p>These plugins are still in the process of being packaged by many distributions and cannot currently be installed with <code>certbot-auto</code>. If, however, you are comfortable installing the certificates yourself, you can run these plugins with <a href="https://certbot.eff.org/docs/install.html#docker-user" rel="nofollow noreferrer">Docker</a>.</p>
  </blockquote>
  
Answers: CC BY-SA 4.0
Answers: 2019-03-01T09:40:06.107Z
Answers: Doc [also says](https://certbot.eff.org/docs/install.html#running-with-docker): "Most users should use the operating system packages (see instructions at certbot.eff.org) or, as a fallback, `certbot-auto`. You should only use Docker if you are sure you know what you are doing and have a good reason to do so."
Answers: Totor
Answers: CC BY-SA 3.0
Answers: 2018-04-24T16:40:06.187Z
Answers: 2018-04-25T02:15:10.133Z
Answers: 2018-04-25T02:15:10.133Z
Answers: erickgnavar
Answers: <p>The way you install certbot plugins depends on how you installed certbot itself. If you installed certbot using some package manager (apt, rpm, brew...), then you should look for compatible certbot plugins in that package manager's repository.</p>
  
  <p>Let's Encrypt also support an alternative installation method: the certbot-auto wrapper. This wrapper creates a private Python virtual installation (generally in <code>/opt/eff.org/certbot/venv</code>), and install certbot into that directory. A nice feature of certbot-auto is that it automatically keeps the certbot client up-to-date. A major downside is that it does not <em>officially</em> supports plugins installation (that is, aside from four plugins that are installed by default).</p>
  
  <p>It is easy enough to work around this limitation, as described in <a href="https://devops.stackexchange.com/a/4845">Ryan G's solution</a>. However, plugins installed through that procedure will be lost every time certbot-auto updates itself, which can result in random renew failures. Here, we have had a few situations where some certificates almost reached expiration because of that issue. Several tickets discuss this issue on certbot's bug tracker, and the team acknowledge the problem, but it seems that it might still be a long way before the issue is actually fixed.</p>
  
  <p>Therefore, if using certbot-auto in an automated setup, it is desirable to either prevent certbot-auto's self updating (by running it with <code>--no-self-upgrade</code>), or to implement some strategy to ensure that required plugins are automatically reinstalled every time certbot is updated.</p>
  
  <p>A possible solution to indeed ensure that required plugins are installed is to add a wrapper around certbot-auto. That wrapper could essentially look as follow:</p>
  
  <pre><code>#!/bin/bash
  
  # The list of plugins to be installed
  CERTBOT_PLUGINS="certbot-dns-route53"
  
  # Force the venv directory to be where we can easily find it
  export VENV_PATH="/opt/eff.org/certbot/venv"
  
  # Force certbot-auto to be where we expect it to be
  export CERTBOT_AUTO="/usr/local/bin/certbot-auto-upstream"
  
  # Force certbot-auto to bootstrap or upgrade itself, but do no more
  "${CERTBOT_AUTO}"  --install-only  "$@"
  
  # Check if required plugins are installed; install them if they are missing
  (
      cd ${VENV_PATH}
      source bin/activate
  
      for plugin in $CERTBOT_PLUGINS ; do
          if ! pip show -q "$plugin" ; then
              pip install "$plugin"
          fi
      done
  
      deactivate
  )
  
  # Execute the actual certbot command
  "${VENV_PATH}/bin/letsencrypt" "$@"
  </code></pre>
  
  <p>I have made available a more complete version of that wrapper <a href="https://gist.github.com/mjameswh/b9e1b3fef3369c1edcac34047f91a952" rel="nofollow noreferrer">here</a>; the only differences with the longer version is that it ensures that the wrapper is being run as root, and it properly handle the <code>--help</code> argument.</p>
  
  <p>To install that wrapper, download the official <code>certbot-auto</code> program to <code>/usr/local/bin/certbot-auto-upstream</code>, and copy the wrapper to <code>/usr/local/bin/certbot-auto</code>. Make sure both files have proper privileges (<code>chown root:root /usr/local/bin/certbot-auto*</code>, then <code>chmod 755 /usr/local/bin/certbot-auto*</code>). In the wrapper file, make sure the line <code>CERTBOT_PLUGINS="..."</code> includes the list of plugins you actually need. And that's it. Simply use the <code>certbot-auto</code> command, as you would have done previously, and forget about the <code>certbot-auto-upstream</code> file.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-05-22T21:12:25.540Z
Answers: 2019-05-22T21:12:25.540Z
Answers: James
Answers: <p>Better method, thanks to the others responses for helping me get to this.</p>
  
  <p>Determine what plugins are installed currently:</p>
  
  <pre><code># certbot-auto plugins
  Saving debug log to /var/log/letsencrypt/letsencrypt.log
  
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  * apache
  Description: Apache Web Server plugin - Beta
  Interfaces: IAuthenticator, IInstaller, IPlugin
  Entry point: apache = certbot_apache.entrypoint:ENTRYPOINT
  
  * nginx
  Description: Nginx Web Server plugin
  Interfaces: IAuthenticator, IInstaller, IPlugin
  Entry point: nginx = certbot_nginx.configurator:NginxConfigurator
  
  * standalone
  Description: Spin up a temporary webserver
  Interfaces: IAuthenticator, IPlugin
  Entry point: standalone = certbot.plugins.standalone:Authenticator
  
  * webroot
  Description: Place files in webroot directory
  Interfaces: IAuthenticator, IPlugin
  Entry point: webroot = certbot.plugins.webroot:Authenticator
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  </code></pre>
  
  <p>Determine where your certbot (in my case certbot-auto) is installed:</p>
  
  <pre><code># find / -name certbot
  /opt/eff.org/certbot
  ...
  </code></pre>
  
  <p>Get into the Virtual Env and install plugin</p>
  
  <pre><code>cd /opt/eff.org/certbot/venv
  source bin/activate
  pip install certbot-dns-google
  deactivate
  </code></pre>
  
  <p>Verify certbot plugins again</p>
  
  <pre><code># certbot-auto plugins
  Saving debug log to /var/log/letsencrypt/letsencrypt.log
  
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  * apache
  Description: Apache Web Server plugin - Beta
  Interfaces: IAuthenticator, IInstaller, IPlugin
  Entry point: apache = certbot_apache.entrypoint:ENTRYPOINT
  
  * dns-google
  Description: Obtain certificates using a DNS TXT record (if you are using Google
  Cloud DNS for DNS).
  Interfaces: IAuthenticator, IPlugin
  Entry point: dns-google = certbot_dns_google.dns_google:Authenticator
  
  * nginx
  Description: Nginx Web Server plugin
  Interfaces: IAuthenticator, IInstaller, IPlugin
  Entry point: nginx = certbot_nginx.configurator:NginxConfigurator
  
  * standalone
  Description: Spin up a temporary webserver
  Interfaces: IAuthenticator, IPlugin
  Entry point: standalone = certbot.plugins.standalone:Authenticator
  
  * webroot
  Description: Place files in webroot directory
  Interfaces: IAuthenticator, IPlugin
  Entry point: webroot = certbot.plugins.webroot:Authenticator
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  </code></pre>
  
Answers: CC BY-SA 4.0
Answers: 2019-06-03T03:38:38.577Z
Answers: Please note that this can be tricky to cron, certbot-auto version upgrades will cause you to need to cron the "pip install" portion again.
Answers: Ryan
Answers: CC BY-SA 4.0
Answers: 2021-01-01T00:00:38.117Z
Answers: `sudo find / -name venv|grep certbot` might be an easier way to find the venv directory.
Answers: Cameron
Answers: CC BY-SA 4.0
Answers: 2018-08-25T16:02:14.897Z
Answers: 2018-08-25T16:02:14.897Z
Answers: Ryan
Answers: <p>If you're on ubuntu or debian, you can grab the following packages from debian testing (buster) </p>
  
  <p>python3-certbot-dns-digitalocean_0.23.0-2_all.deb python3-digitalocean_1.13.2-1_all.deb</p>
  
Answers: CC BY-SA 4.0
Answers: 2018-11-05T22:38:02.503Z
Answers: 2018-11-05T22:38:02.503Z
Answers: Matthew Darwin
Answers: <p>This worked for me on Ubuntu 18.04 LTS</p>
  
  <pre><code>apt install certbot
  apt install python3-certbot-dns-digitalocean
  </code></pre>
  
  <p><a href="https://github.com/certbot/certbot/issues/6531#issuecomment-443812851" rel="nofollow noreferrer">See this certbot issue</a></p>
  
Answers: CC BY-SA 4.0
Answers: 2019-08-31T16:25:00.880Z
Answers: 2019-08-31T16:25:00.880Z
Answers: Xetwo
Answers: <p>I had the same problem, after I updated certbot on OS X I could not get the digitalocean plugin to appear, even after re-installing it with <code>pip install certbot-dns-digitalocean</code>.</p>
  
  <p>The solution was to uninstall it and then re-install it. I used sudo just to be safe:</p>
  
  <pre><code>sudo pip uninstall certbot-dns-digitalocean 
  sudo pip install certbot-dns-digitalocean
  </code></pre>
  
  <p>It then appeared ok in the <code>certbot plugins</code> list.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-10-08T08:35:34.737Z
Answers: 2019-10-08T08:35:34.737Z
Answers: Alan Lawson
Answers: <p>First run</p>
  
  <pre><code># type certbot
  certbot is hashed (/usr/bin/certbot)
  </code></pre>
  
  <p>To find out where <code>certbot</code> is installed to. Or <code>command -v certbot</code> if you prefer.</p>
  
  <p>Then run <code>head /usr/bin/certbot</code> and note what version of Python it's using:</p>
  
  <pre><code>#!/usr/bin/python3
  </code></pre>
  
  <p>In my case, it was using Python 3.</p>
  
  <p>I noticed from my pip output it was trying to install a Python 2.7 package:</p>
  
  <pre><code># pip install certbot-dns-digitalocean
  Requirement already satisfied: certbot-dns-digitalocean in /usr/local/lib/python2.7/dist-packages
  </code></pre>
  
  <p>So how do we get pip to install Python 3 packages instead? Just copy the instructions from <a href="https://stackoverflow.com/a/11272201/65387">here</a>:</p>
  
  <pre><code>cd /tmp
  curl -O https://bootstrap.pypa.io/get-pip.py
  python3 get-pip.py
  rm get-pip.py
  </code></pre>
  
  <p>Now you should have the <code>pip3</code> command, so run this instead:</p>
  
  <pre><code>pip3 install certbot-dns-digitalocean
  </code></pre>
  
  <p>And now try again:</p>
  
  <pre><code># certbot plugins
  Saving debug log to /var/log/letsencrypt/letsencrypt.log
  
  -------------------------------------------------------------------------------
  * dns-digitalocean
  Description: Obtain certs using a DNS TXT record (if you are using DigitalOcean
  for DNS).
  Interfaces: IAuthenticator, IPlugin
  Entry point: dns-digitalocean =
  certbot_dns_digitalocean.dns_digitalocean:Authenticator
  </code></pre>
  
Answers: CC BY-SA 4.0
Answers: 2019-01-17T00:32:41.550Z
Answers: if you run into this error `ImportError: cannot import name 'sysconfig'`
  install package `python3-distutils`.  That and using sudo did the trick.  I have route53 plugin loaded.
Answers: DKebler
Answers: CC BY-SA 4.0
Answers: 2018-09-05T02:02:58.703Z
Answers: 2018-09-05T02:02:58.703Z
Answers: mpen
Body: <p>I installed Certbot by following <a href="https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04" rel="noreferrer">this tutorial</a>:</p>
  
  <pre><code>sudo add-apt-repository ppa:certbot/certbot
  sudo apt-get update
  sudo apt-get install python-certbot-nginx
  </code></pre>
  
  <p>And now I want to set up my cert, but I need the <code>dns-digitalocean</code> plugin:</p>
  
  <pre><code># certbot certonly --dns-digitalocean
  Saving debug log to /var/log/letsencrypt/letsencrypt.log
  Could not choose appropriate plugin: The requested dns-digitalocean plugin does not appear to be installed
  The requested dns-digitalocean plugin does not appear to be installed
  </code></pre>
  
  <p>I tried installing it with <code>pip</code>:</p>
  
  <pre><code>pip install certbot-dns-digitalocean
  </code></pre>
  
  <p>But apparently the apt-get version isn't "seeing" it.</p>
  
  <p>How do I install it properly?</p>
  
Tags: <ssl><certbot>
Title: How to install Certbot plugins?
UserDisplayName: mpen
ThreadText: # How to install Certbot plugins?
  
  (Asked by: username_0 on 2018-03-28)
  
  I installed Certbot by following [this tutorial](https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04):
  
  ```
  sudo add-apt-repository ppa:certbot/certbot
  sudo apt-get update
  sudo apt-get install python-certbot-nginx
  
  ```
  
  And now I want to set up my cert, but I need the `dns-digitalocean` plugin:
  
  ```
  # certbot certonly --dns-digitalocean
  Saving debug log to /var/log/letsencrypt/letsencrypt.log
  Could not choose appropriate plugin: The requested dns-digitalocean plugin does not appear to be installed
  The requested dns-digitalocean plugin does not appear to be installed
  
  ```
  
  I tried installing it with `pip`:
  
  ```
  pip install certbot-dns-digitalocean
  
  ```
  
  But apparently the apt-get version isn't "seeing" it.
  
  How do I install it properly?
  
  **Tags:** ssl, certbot
  
  
  ---
  
  ## 9 answers
  
  ### Answer by username_0 on 2018-09-05. Score: 15 | Accepted answer
  
  First run
  
  ```
  # type certbot
  certbot is hashed (/usr/bin/certbot)
  
  ```
  
  To find out where `certbot` is installed to. Or `command -v certbot` if you prefer.
  
  Then run `head /usr/bin/certbot` and note what version of Python it's using:
  
  ```
  #!/usr/bin/python3
  
  ```
  
  In my case, it was using Python 3.
  
  I noticed from my pip output it was trying to install a Python 2.7 package:
  
  ```
  # pip install certbot-dns-digitalocean
  Requirement already satisfied: certbot-dns-digitalocean in /usr/local/lib/python2.7/dist-packages
  
  ```
  
  So how do we get pip to install Python 3 packages instead? Just copy the instructions from [here](https://stackoverflow.com/a/11272201/65387):
  
  ```
  cd /tmp
  curl -O https://bootstrap.pypa.io/get-pip.py
  python3 get-pip.py
  rm get-pip.py
  
  ```
  
  Now you should have the `pip3` command, so run this instead:
  
  ```
  pip3 install certbot-dns-digitalocean
  
  ```
  
  And now try again:
  
  ```
  # certbot plugins
  Saving debug log to /var/log/letsencrypt/letsencrypt.log
  
  -------------------------------------------------------------------------------
  * dns-digitalocean
  Description: Obtain certs using a DNS TXT record (if you are using DigitalOcean
  for DNS).
  Interfaces: IAuthenticator, IPlugin
  Entry point: dns-digitalocean =
  certbot_dns_digitalocean.dns_digitalocean:Authenticator
  
  ```
  
  > **Comments:**
  > **username_11**: if you run into this error `ImportError: cannot import name 'sysconfig'` install package `python3-distutils`.  That and using sudo did the trick.  I have route53 plugin loaded.  
  
  ---
  
  ### Answer by username_6 on 2018-08-25. Score: 22
  
  Better method, thanks to the others responses for helping me get to this.
  
  Determine what plugins are installed currently:
  
  ```
  # certbot-auto plugins
  Saving debug log to /var/log/letsencrypt/letsencrypt.log
  
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  * apache
  Description: Apache Web Server plugin - Beta
  Interfaces: IAuthenticator, IInstaller, IPlugin
  Entry point: apache = certbot_apache.entrypoint:ENTRYPOINT
  
  * nginx
  Description: Nginx Web Server plugin
  Interfaces: IAuthenticator, IInstaller, IPlugin
  Entry point: nginx = certbot_nginx.configurator:NginxConfigurator
  
  * standalone
  Description: Spin up a temporary webserver
  Interfaces: IAuthenticator, IPlugin
  Entry point: standalone = certbot.plugins.standalone:Authenticator
  
  * webroot
  Description: Place files in webroot directory
  Interfaces: IAuthenticator, IPlugin
  Entry point: webroot = certbot.plugins.webroot:Authenticator
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  
  ```
  
  Determine where your certbot (in my case certbot-auto) is installed:
  
  ```
  # find / -name certbot
  /opt/eff.org/certbot
  ...
  
  ```
  
  Get into the Virtual Env and install plugin
  
  ```
  cd /opt/eff.org/certbot/venv
  source bin/activate
  pip install certbot-dns-google
  deactivate
  
  ```
  
  Verify certbot plugins again
  
  ```
  # certbot-auto plugins
  Saving debug log to /var/log/letsencrypt/letsencrypt.log
  
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  * apache
  Description: Apache Web Server plugin - Beta
  Interfaces: IAuthenticator, IInstaller, IPlugin
  Entry point: apache = certbot_apache.entrypoint:ENTRYPOINT
  
  * dns-google
  Description: Obtain certificates using a DNS TXT record (if you are using Google
  Cloud DNS for DNS).
  Interfaces: IAuthenticator, IPlugin
  Entry point: dns-google = certbot_dns_google.dns_google:Authenticator
  
  * nginx
  Description: Nginx Web Server plugin
  Interfaces: IAuthenticator, IInstaller, IPlugin
  Entry point: nginx = certbot_nginx.configurator:NginxConfigurator
  
  * standalone
  Description: Spin up a temporary webserver
  Interfaces: IAuthenticator, IPlugin
  Entry point: standalone = certbot.plugins.standalone:Authenticator
  
  * webroot
  Description: Place files in webroot directory
  Interfaces: IAuthenticator, IPlugin
  Entry point: webroot = certbot.plugins.webroot:Authenticator
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  
  ```
  
  > **Comments:**
  > **username_6**: Please note that this can be tricky to cron, certbot-auto version upgrades will cause you to need to cron the "pip install" portion again.  
  > **username_7**: `sudo find / -name venv|grep certbot` might be an easier way to find the venv directory.  
  
  ---
  
  ### Answer by username_1 on 2018-07-16. Score: 8
  
  Now (July 2018), you should be able to use either
  
  ```
  pip install certbot-dns-digitalocean
  
  ```
  
  or
  
  ```
  git clone https://github.com/certbot/certbot.git
  cd certbot/certbot-dns-digitalocean/
  python setup.py install
  
  ```
  
  You may need `sudo` privileges for either.
  
  After installing you may not be able to see the plugin with `certbot plugins`, but you should be able to `certbot certonly --dns-digitalocean` just fine.
  
  > **Comments:**
  > **username_0**: Hang on. How did you install certbot then? I think my problem was that I installed certbot with `apt` and `certbot-dns-digitalocean` with `pip` and certbot wasn't able to find it.  
  > **username_1**: Yep, and I installed it the same way you did. Maybe the way you installed `pip` is different? I `apt` installed python 2.7 and then `sudo easy_install pip` (may require an apt install of these: `python-setuptools python-dev build-essential`)  
  
  ---
  
  ### Answer by username_2 on 2021-06-18. Score: 3
  
  For those who is using **`certbot`** distributed by OS distros *certbot plugins* can be installed by a package manager using provider's name, for example:
  
  **Debian/Ubuntu:**
  
  ```
  apt-get install python3-certbot-dns-cloudflare
  apt-get install python3-certbot-dns-google
  apt-get install python3-certbot-dns-route53
  
  ```
  
  **RHEL/CentOS/Rocky/AlmaLinux 8:**
  
  ```
  dnf install python3-certbot-dns-cloudflare
  dnf install python3-certbot-dns-google
  dnf install python3-certbot-dns-route53
  
  ```
  
  **RHEL/CentOS 7:**
  
  ```
  yum install python2-certbot-dns-cloudflare
  yum install python2-certbot-dns-google
  yum install python2-certbot-dns-route53
  
  ```
  
  
  ---
  
  ### Answer by username_3 on 2018-04-24. Score: 3
  
  You have to use Docker to use dns plugins. From [DNS Plugins](https://certbot.eff.org/docs/using.html#dns-plugins):
  
  > These plugins are still in the process of being packaged by many distributions and cannot currently be installed with `certbot-auto`. If, however, you are comfortable installing the certificates yourself, you can run these plugins with [Docker](https://certbot.eff.org/docs/install.html#docker-user).
  
  > **Comments:**
  > **username_4**: Doc [also says](https://certbot.eff.org/docs/install.html#running-with-docker): "Most users should use the operating system packages (see instructions at certbot.eff.org) or, as a fallback, `certbot-auto`. You should only use Docker if you are sure you know what you are doing and have a good reason to do so."  
  
  ---
  
  ### Answer by username_5 on 2019-05-22. Score: 2
  
  The way you install certbot plugins depends on how you installed certbot itself. If you installed certbot using some package manager (apt, rpm, brew...), then you should look for compatible certbot plugins in that package manager's repository.
  
  Let's Encrypt also support an alternative installation method: the certbot-auto wrapper. This wrapper creates a private Python virtual installation (generally in `/opt/eff.org/certbot/venv`), and install certbot into that directory. A nice feature of certbot-auto is that it automatically keeps the certbot client up-to-date. A major downside is that it does not *officially* supports plugins installation (that is, aside from four plugins that are installed by default).
  
  It is easy enough to work around this limitation, as described in [username_6 G's solution](https://devops.stackexchange.com/a/4845). However, plugins installed through that procedure will be lost every time certbot-auto updates itself, which can result in random renew failures. Here, we have had a few situations where some certificates almost reached expiration because of that issue. Several tickets discuss this issue on certbot's bug tracker, and the team acknowledge the problem, but it seems that it might still be a long way before the issue is actually fixed.
  
  Therefore, if using certbot-auto in an automated setup, it is desirable to either prevent certbot-auto's self updating (by running it with `--no-self-upgrade`), or to implement some strategy to ensure that required plugins are automatically reinstalled every time certbot is updated.
  
  A possible solution to indeed ensure that required plugins are installed is to add a wrapper around certbot-auto. That wrapper could essentially look as follow:
  
  ```
  #!/bin/bash
  
  # The list of plugins to be installed
  CERTBOT_PLUGINS="certbot-dns-route53"
  
  # Force the venv directory to be where we can easily find it
  export VENV_PATH="/opt/eff.org/certbot/venv"
  
  # Force certbot-auto to be where we expect it to be
  export CERTBOT_AUTO="/usr/local/bin/certbot-auto-upstream"
  
  # Force certbot-auto to bootstrap or upgrade itself, but do no more
  "${CERTBOT_AUTO}"  --install-only  "$@"
  
  # Check if required plugins are installed; install them if they are missing
  (
      cd ${VENV_PATH}
      source bin/activate
  
      for plugin in $CERTBOT_PLUGINS ; do
          if ! pip show -q "$plugin" ; then
              pip install "$plugin"
          fi
      done
  
      deactivate
  )
  
  # Execute the actual certbot command
  "${VENV_PATH}/bin/letsencrypt" "$@"
  
  ```
  
  I have made available a more complete version of that wrapper [here](https://gist.github.com/mjameswh/b9e1b3fef3369c1edcac34047f91a952); the only differences with the longer version is that it ensures that the wrapper is being run as root, and it properly handle the `--help` argument.
  
  To install that wrapper, download the official `certbot-auto` program to `/usr/local/bin/certbot-auto-upstream`, and copy the wrapper to `/usr/local/bin/certbot-auto`. Make sure both files have proper privileges (`chown root:root /usr/local/bin/certbot-auto*`, then `chmod 755 /usr/local/bin/certbot-auto*`). In the wrapper file, make sure the line `CERTBOT_PLUGINS="..."` includes the list of plugins you actually need. And that's it. Simply use the `certbot-auto` command, as you would have done previously, and forget about the `certbot-auto-upstream` file.
  
  
  ---
  
  ### Answer by username_8 on 2018-11-05. Score: 1
  
  If you're on ubuntu or debian, you can grab the following packages from debian testing (buster)
  
  python3-certbot-dns-digitalocean\_0.23.0-2\_all.deb python3-digitalocean\_1.13.2-1\_all.deb
  
  
  ---
  
  ### Answer by username_9 on 2019-08-31. Score: 1
  
  This worked for me on Ubuntu 18.04 LTS
  
  ```
  apt install certbot
  apt install python3-certbot-dns-digitalocean
  
  ```
  
  [See this certbot issue](https://github.com/certbot/certbot/issues/6531#issuecomment-443812851)
  
  
  ---
  
  ### Answer by username_10 on 2019-10-08. Score: 1
  
  I had the same problem, after I updated certbot on OS X I could not get the digitalocean plugin to appear, even after re-installing it with `pip install certbot-dns-digitalocean`.
  
  The solution was to uninstall it and then re-install it. I used sudo just to be safe:
  
  ```
  sudo pip uninstall certbot-dns-digitalocean 
  sudo pip install certbot-dns-digitalocean
  
  ```
  
  It then appeared ok in the `certbot plugins` list.
  
  
  ---
  
  