Certbot fails with a codec error


#1

Please fill out the fields below so we can help you better.

My domain is: www.cloudstormllc.com

I ran this command: sudo certbot certonly --manual

It produced this output:
Traceback (most recent call last):
File “/usr/local/bin/certbot”, line 11, in
load_entry_point(‘certbot==0.8.1’, ‘console_scripts’, ‘certbot’)()
File “/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/certbot/main.py”, line 717, in main
setup_logging(config, _cli_log_handler, logfile=‘letsencrypt.log’)
File “/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/certbot/main.py”, line 631, in setup_logging
cli_handler = cli_handler_factory(config, level, fmt)
File “/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/certbot/main.py”, line 618, in _cli_log_handler
handler = log.DialogHandler()
File “/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/certbot/log.py”, line 29, in init
self.d = dialog.Dialog() if d is None else d
File “/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/dialog.py”, line 1015, in init
self._dialog_prg = _path_to_executable(dialog)
File “/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/dialog.py”, line 476, in _path_to_executable
res = _find_in_path(f)
File “/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/dialog.py”, line 441, in _find_in_path
for d in PATH.split(":"):

My operating system is (include version): OsX Sierra v. 10.12.3

My web server is (include version): Nginx (provided by Heroku)

My hosting provider, if applicable, is: Heroku

I can login to a root shell on my machine (yes or no, or I don’t know): Yes

I’m using a control panel to manage my site (no, or provide the name and version of the control panel): No


#2

I thought some additional background would be helpful.

I installed certbot using HomeBrew (brew install certbot). Certbot 0.8.1 was successfully installed. However, when I ran the command sudo certbot certonly --manual the certbot client failed during execution. I then tried a different macbook and everything worked fine.

The fact I was able to install certbot on one macbook and not the other (both running Sierra) leads me to believe I have an issue with my python environments and/or openssl. Thus, I created a virtual environment using python 2.7 with the same result. I then tried a python 3.5 virtual environment…same result. My next step was to clone the certbot github repo and run install.py (from within a venv). Still the same result.

Normally such an issue has to do with a unicode character that can’t be properly translated. However, in this case I’m not doing anything unique; simply running the certbot command to generate a cert only with no domain specified.

Any help, thoughts, suggestions, etc. will be greatly appreciated. I was able to successfully generate a certificate and add it to my Heroku application so that’s a good thing, but I prefer to use my personal macbook for these types of things (personal website).


#3

Okay…I managed to resolve the issue on my own. I’ll post the steps so others may benefit from the lessons learned.

  1. Create a virtual environmnet: virtualenv --no-site-packages -p /usr/bin/python venv2
  2. Clone Certbot: git clone https://github.com/certbot/certbot
  3. Change to the certbot repo: cd certbot
  4. Activate the virtual environment: …/venv2/bin/activate
  5. Install docs(?): pip install -e .[docs]
  6. Install dependencies: pip install --no-cache-dir -e acme -e . -e certbot-apache -e certbot-nginx
  7. Not sure if this is required: pip install hashin
  8. Run setup.py: python setup.py install
  9. Run the certbot client: sudo certbot certonly --manual
  10. Client launches; follow the prompts/commands and your certs will be generated.

I hope this helps someone one.


#4

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.