When running letsencrypt-auto for the first time, it installs some packages.
During the installation, the following warning pops up:
Updating letsencrypt and virtual environment dependencies...../home/user/.local/share/letsencrypt/local/lib/python2.7/site-packages/pip/vendor/requests/packages/urllib3/util/ssl.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see Advanced Usage - urllib3 2.1.0 documentation.
InsecurePlatformWarning
Reading the description makes it sound as if HTTPS URLs cannot be retrieved in a safe manner with python 2.7.6 unless I install PyOpenSSL.
If you encounter this warning, it is strongly recommended you upgrade to a
newer Python version, or that you use pyOpenSSL as described in the
OpenSSL / PyOpenSSL section.
On Debian/Ubuntu, the python version can be determined like this:
Updating letsencrypt and virtual environment dependencies.../home/droid/.local/share/letsencrypt/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning ./home/droid/.local/share/letsencrypt/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning ../home/droid/.local/share/letsencrypt/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning
After that it is hanging and nothing happens.
So to summarize, run the client once and let it fail so the virtualenv is created and then activate the virtualenv in your own shell to install pyopenssl.
Make sure pip install cryptography works before leaving the virtualenv.
I had the same problem and got it working with the below changes to ./letsencrypt-auto. The above suggested changes didn’t work because they need to be installed before letsencrypt
$VENV_BIN/pip install -U pip
$VENV_BIN/pip install -U pyopenssl ndg-httpsclient pyasn1 # <- added this here
and
$VENV_BIN/pip install -U pip > /dev/null
print .
$VENV_BIN/pip install -U pyopenssl ndg-httpsclient pyasn1 # <- added this here