Let’s Encrypt https证书更新失败,Let’s Encrypt 使用遇到问题总结

蛰伏已久 蛰伏已久 2018-07-31

之前使用Let’s Encrypt创建的证书要到期了,这次续签,总是失败,折腾了整整一天,百度了无数资料,最后终于解决了,纪录一下。

遇到的各种错误提示

 SNIMissingWarning: An HTTPS request has been made, but the SNI (Server Name Indication) 
 extension to TLS is not available on this platform. This may cause the server to present 
 an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer
  version of Python to solve this.
Certbot has problem setting up the virtual environment.

We were not be able to guess the right solution from your pip 
output.

我的环境最初是nginx,centos6.5,python 2.6.6,pip 9.0,首先怀疑的是环境问题,计划更新python至2.7.5,pip更新至18.0,更新之后还是不能用,certbot提示不能猜测出pip的输出结果,猜测是因为有多个pip,又通过pip的方式安装了certbot,终于好了,详细流程如下

1.安装python2.7.5

a.下载python2.7.5

可以通过命令下载

cd /usr/local    #准备下载到这个目录下
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2

也可以直接通过浏览器下载,然后传到服务器,https://www.python.org/ftp/python/,里面有各个python的版本,选择2.7.5的

b.解压安装

1.解压文件
tar -jxvf Python-2.7.5.tar.bz2 
2.创建安装目录
mkdir /usr/local/python275
3.安装python
cd /usr/local Python-2.7.5
./configure --prefix=/usr/local/python27
make
make install

c.更新python默认版本

1.将老版的重命名备份一下
mv /usr/bin/python /usr/bin/python2.6.6
2.建立新版本软链接
ln -s /usr/local/python275/bin/python /usr/bin/python

3.以下操作不知道有没有用,更新python-config,同上
mv /usr/bin/python-config /usr/bin/python-config2.6.6
ln -s /usr/local/python275/bin/python-config /usr/bin/python-config

d.查看python版本

python -V 
正常会输出python2.7.5

e.设置yum的python版本

升级python可能导致yum不能用, 编辑/usr/bin/yum,将第一行#!/usr/bin/python 改成#!/usr/bin/python2.6

vim /usr/bin/yum
修改第一行内容


2.安装pip

测试好用的一个方法

wget  https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip -V #查看版本

还试过别的方法

#安装setuptools

wget https://bootstrap.pypa.io/ez_setup.py -O - | python

#setuptools 正确安装完成后,easy_install 命令就会被安装在 /usr/local/bin 目录下了。
#为新版 Python 安装 pip

easy_install pip


3.安装virtualenv

这时通过certbot生成证书会提示没有virtualenv

pip install virtualenv

可能是由于资源在国外,用wifi安装很多次都失败了,有安装进度,但是每次都不能安装完,最后用手机热点下载的,遇到这种情况就只能多试几次


4.安装certbot

试了3种方法,先说最后成功的

1.通过pip安装certbot

pip install certbot

安装成功后会提示安装在了哪个目录,我的安装在了/usr/local/python275/bin这个目录下
The script jws is installed in '/usr/local/python275/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  The script pbr is installed in '/usr/local/python275/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  The scripts futurize and pasteurize are installed in '/usr/local/python275/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  The script certbot is installed in '/usr/local/python275/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

生成证书

/usr/local/python275/bin/certbot  certonly --standalone --email yulin@3wcoffee.com -d api.3wcoffee.com

终于看到了证书,激动的眼泪都出来了嘿嘿,如果你的证书也生成了,记得大赏给我1分钱,让我知道哈哈


2.通过git安装certbot

最初我是通过这种方式创建证书的,只是后来有一天突然不好用了,才有了本文

下载
git clone  https://github.com/certbot/certbot

生成证书
./certbot-auto certonly --standalone --email yulin@3wcoffee.com -d www.3wcoffee.com


3.官网推荐的安装方式

地址:https://certbot.eff.org/lets-encrypt/centos6-nginx

选择服务器类型和操作系统版本,根据提示进行安装


整体流程就是安装python,安装pip,安装virtualenv,安装certbot,生成证书


分享到

点赞(1)