2024年7月

GCC 4.8.5 版本。这是一个较老的 GCC 版本,可能不支持一些新的 C 语言特性或优化。
对于编译一些较新版本的软件,特别是像 Python 3.8 这样需要较高标准 C99/C11 支持的软件来说,建议考虑升级到较新版本的 GCC。
yum install centos-release-scl # 安装 SCL 存储库
yum install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils # 安装 GCC 9(示例)
scl enable devtoolset-9 bash # 启用 GCC 9 环境
gcc --version # 验证 GCC 版本

必须要openssl-1.1以上版本, 1.0的太老了
wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
tar -zxvf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
./config --prefix=/usr/local/openssl-1.1.1l --openssldir=/usr/local/openssl-1.1.1l shared
make
make install

ldconfig
设置环境变量 LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=/usr/local/openssl-1.1.1l/lib:$LD_LIBRARY_PATH
/usr/local/openssl-1.1.1l/bin/openssl version

wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz
tar xzf Python-3.8.10.tgz

cd Python-3.8.10
./configure --prefix=/opt/python3.8 --with-openssl=/usr/local/openssl-1.1.1l --enable-optimizations
make

使用 make altinstall 而不是 make install 的原因主要在于避免对系统的默认 Python 版本造成影响:
make altinstall

vi /etc/profile
在文件末尾添加以下内容:
export PATH=/opt/python3.8/bin:$PATH

使更改生效:
source /etc/profile

添加 EPEL 存储库(如果尚未安装):
yum install epel-release

yum install certbot python3-certbot-nginx

不行就试一下pip3
yum install python3-pip
pip3 install certbot-nginx
很慢的话就使用阿里云的镜像源:
pip3 install -i https://mirrors.aliyun.com/pypi/simple/ certbot-nginx

创建一个新的 Python 3.8 虚拟环境:
python3.8 -m venv /opt/certbot-venv
激活虚拟环境:
source /opt/certbot-venv/bin/activate
使用国内镜像源加速安装:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple certbot certbot-nginx
certbot certonly --standalone -d abc.abc.com -d abc2.abc.com
/opt/python3.8/bin/python3.8 /opt/certbot-venv/bin/certbot certonly --standalone -d abc.aaa.com -d abc2.aaa.com

certbot certonly --standalone -d abc.com -d www.abc.com -d dad.abc.com

自动续期
certbot renew --standalone
放到crontab -e
0 2 * certbot renew --standalone --quiet --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx" >> /var/log/certbot-renew.log 2>&1

手动生成证书
/opt/python3.8/bin/python3.8 /usr/local/bin/certbot certonly --standalone -d abc.com-d www.abc.com

解决问题试一下下面
确认 Certbot 是否安装:
运行以下命令确认 Certbot 是否已正确安装:
/opt/python3.8/bin/python3.8 -m pip show certbot

如果 Certbot 没有安装,请使用以下命令安装:
/opt/python3.8/bin/python3.8 -m pip install certbot

确认 Python 解释器路径:
确认 /opt/python3.8/bin/python3.8 是正确的 Python 3.8 解释器路径。你可以通过以下命令验证:

ls -l /opt/python3.8/bin/python3.8

安装Nginx的时候注意:
确保在配置 Nginx 时指定了正确的 OpenSSL 源代码路径,而不是已安装路径:
./configure \
--with-http_ssl_module \
--prefix=/usr/local/nginx \
--user=www \
--group=www \
--with-openssl=/path/to/openssl-1.1.1w
确保 /path/to/openssl-1.1.1w 是 OpenSSL 源代码目录的实际路径,而不是已安装的路径。